我写马蹄集的题目MT2033碰碰车,写的Java代码IDE上可以正常运行,但是到了马蹄集里面提交就报错
运行执行代码的时候完整的报错信息为
我点击提交后的报错信息为
我的代码如下
import java.util.Scanner;
import java.util.*;
class Car {
int id;
int position;
int direction;
Car (){}
Car(int id, int position, int direction) {
this.id = id;
this.position = position;
this.direction = direction;
}
@Override
public String toString() {
return String.format("Car: id为%d, position为%d, direction为%d",id,position,direction);
}
}
class Car_abstract {
int pos;
int dir;
Car_abstract(){}
Car_abstract(int pos, int dir) {
this.pos = pos;
this.dir = dir;
}
@Override
public String toString() {
return String.format("Car_abstract: pos为%d, dir为%d",pos,dir);
}
}
class Main {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
// code here
//获取数量和时间
int carNum = input.nextInt();
int time = input.nextInt();
Car[] origin = new Car[carNum];
Car_abstract[] process = new Car_abstract[carNum];
for (int i = 0; i < carNum; i++) {
int pos = input.nextInt();
int dir = input.nextInt();
Car c1 = new Car(i, pos, dir);
Car_abstract c2 = new Car_abstract(pos,dir);
origin[i] = c1;
process[i] = c2;
}
// 将orign按照position进行排序
Arrays.sort(origin, new Comparator<Car>() {
@Override
public int compare(Car o1, Car o2) {
return o1.position - o2.position;
}
});
// 遍历process,更新pos
for (Car_abstract car_abs: process) {
car_abs.pos = car_abs.pos + time * car_abs.dir;
}
//process数组按照pos进行排序
Arrays.sort(process, new Comparator<Car_abstract>() {
@Override
public int compare(Car_abstract o1, Car_abstract o2) {
return o1.pos - o2.pos;
}
});
//遍历process,如果有pos相同则dir置0,这里先用两层for循环暴力解一下,以后可以用双指针优化
for (int i = 0; i < carNum; i++) {
for (int j = i+1; j < carNum; j++) {
if (process[i].pos == process[j].pos) {
process[i].dir = 0;
process[j].dir = 0;
}
}
}
Car[] res = new Car[carNum];
for (int i = 0; i < carNum; i++) {
Car finalCar = new Car(origin[i].id, process[i].pos, process[i].dir);
res[i] = finalCar;
}
// 将result数组按照id进行排序
Arrays.sort(res, new Comparator<Car>() {
@Override
public int compare(Car o1, Car o2) {
return o1.id - o2.id;
}
});
// 输出结果
for (int i = 0; i < carNum; i++) {
System.out.println(String.format("%d %d", res[i].position, res[i].direction));
}
input.close();
}
}
我网上查了都说是JDK版本的问题,但是在马蹄集里面我也没办法改它的JDK,因此想请教大家。