Submission #1173742
Source Code Expand
import java.util.ArrayList; import java.util.Arrays; import java.util.ListIterator; import java.util.Scanner; public class Main{ static Scanner s = new Scanner(System.in); static final int h=30,w=30,cars=450,time=10000; static final Car field[][] = new Car[h][w]; //static final Car ar[] = new Car[cars]; static final ArrayList<Car> carList = new ArrayList<>(cars); static final ArrayList<String> finalResult = new ArrayList<>(50); public static void main(String[] args) { s.next();s.next();s.next();s.next(); for(int i=0;i<cars;i++) { Car c = new Car(i); carList.add(c); field[c.y][c.x] = c; } char[] movement = new char[cars]; ListIterator<Car> iterator; Car c; MoveState r; for(int l=0;l<time;l++) { for(int i=0;i<h;i++)for(int j=0;j<w;j++) { if(field[i][j]!=null&&field[i][j].no==-1) field[i][j]=null; } Arrays.fill(movement, '-'); boolean unbreakFlag = false; iterator = carList.listIterator(); while(iterator.hasNext()) {c=iterator.next(); r=c.move(movement); unbreakFlag|=(r==MoveState.MOVED); if(r==MoveState.GOALED) iterator.remove(); } finalResult.add(String.valueOf(movement)); if(!unbreakFlag) break; } if(finalResult.get(finalResult.size()-1).matches("-*"))finalResult.remove(finalResult.size()-1); System.out.println(finalResult.size()); finalResult.stream().forEachOrdered(System.out::println); } static class Car{ int x,y,tx,ty,no; Car(){ } Car(int NO_) { no=NO_; y=Integer.parseInt(s.next())-1; x=Integer.parseInt(s.next())-1; ty=Integer.parseInt(s.next())-1; tx=Integer.parseInt(s.next())-1; } MoveState move(char[] ch) { if(x<tx) { if(field[y][x+1]==null) { field[y][ x]=DUMMYCAR.DUMMY; field[y][++x]=this; ch[no]='R'; return this.goaled()?MoveState.GOALED:MoveState.MOVED; } } if(x>tx) { if(field[y][x-1]==null) { field[y][ x]=DUMMYCAR.DUMMY; field[y][--x]=this; ch[no]='L'; return this.goaled()?MoveState.GOALED:MoveState.MOVED; } } if(y<ty) { if(field[y+1][x]==null) { field[ y][x]=DUMMYCAR.DUMMY; field[++y][x]=this; ch[no]='D'; return this.goaled()?MoveState.GOALED:MoveState.MOVED; } } if(y>ty) { if(field[y-1][x]==null) { field[ y][x]=DUMMYCAR.DUMMY; field[--y][x]=this; ch[no]='U'; return this.goaled()?MoveState.GOALED:MoveState.MOVED; } } return this.goaled()?MoveState.GOALED:MoveState.UNMOVED; } private boolean goaled() { return !(x!=tx||y!=ty); } } static enum MoveState{ GOALED, MOVED, UNMOVED, ; } static class DUMMYCAR extends Car{ public static final DUMMYCAR DUMMY = new DUMMYCAR(); private DUMMYCAR() { super(); no=-1; } } }
Submission Info
Submission Time | |
---|---|
Task | B - 日本橋大渋滞 |
User | fal_rnd |
Language | Java8 (OpenJDK 1.8.0) |
Score | 4598 |
Code Size | 2908 Byte |
Status | AC |
Exec Time | 287 ms |
Memory | 29020 KB |
Judge Result
Set Name | test_01 | test_02 | test_03 | test_04 | test_05 | test_06 | test_07 | test_08 | test_09 | test_10 | test_11 | test_12 | test_13 | test_14 | test_15 | test_16 | test_17 | test_18 | test_19 | test_20 | test_21 | test_22 | test_23 | test_24 | test_25 | test_26 | test_27 | test_28 | test_29 | test_30 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Score / Max Score | 156 / 50000 | 160 / 50000 | 157 / 50000 | 159 / 50000 | 171 / 50000 | 159 / 50000 | 151 / 50000 | 160 / 50000 | 146 / 50000 | 150 / 50000 | 155 / 50000 | 156 / 50000 | 148 / 50000 | 161 / 50000 | 148 / 50000 | 161 / 50000 | 153 / 50000 | 147 / 50000 | 149 / 50000 | 152 / 50000 | 163 / 50000 | 152 / 50000 | 153 / 50000 | 144 / 50000 | 143 / 50000 | 153 / 50000 | 153 / 50000 | 141 / 50000 | 149 / 50000 | 148 / 50000 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Status |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Set Name | Test Cases |
---|---|
test_01 | subtask_01_01.txt |
test_02 | subtask_01_02.txt |
test_03 | subtask_01_03.txt |
test_04 | subtask_01_04.txt |
test_05 | subtask_01_05.txt |
test_06 | subtask_01_06.txt |
test_07 | subtask_01_07.txt |
test_08 | subtask_01_08.txt |
test_09 | subtask_01_09.txt |
test_10 | subtask_01_10.txt |
test_11 | subtask_01_11.txt |
test_12 | subtask_01_12.txt |
test_13 | subtask_01_13.txt |
test_14 | subtask_01_14.txt |
test_15 | subtask_01_15.txt |
test_16 | subtask_01_16.txt |
test_17 | subtask_01_17.txt |
test_18 | subtask_01_18.txt |
test_19 | subtask_01_19.txt |
test_20 | subtask_01_20.txt |
test_21 | subtask_01_21.txt |
test_22 | subtask_01_22.txt |
test_23 | subtask_01_23.txt |
test_24 | subtask_01_24.txt |
test_25 | subtask_01_25.txt |
test_26 | subtask_01_26.txt |
test_27 | subtask_01_27.txt |
test_28 | subtask_01_28.txt |
test_29 | subtask_01_29.txt |
test_30 | subtask_01_30.txt |
Case Name | Status | Exec Time | Memory |
---|---|---|---|
subtask_01_01.txt | AC | 287 ms | 28508 KB |
subtask_01_02.txt | AC | 243 ms | 27364 KB |
subtask_01_03.txt | AC | 219 ms | 26524 KB |
subtask_01_04.txt | AC | 208 ms | 27776 KB |
subtask_01_05.txt | AC | 223 ms | 28040 KB |
subtask_01_06.txt | AC | 235 ms | 24456 KB |
subtask_01_07.txt | AC | 225 ms | 26620 KB |
subtask_01_08.txt | AC | 226 ms | 25284 KB |
subtask_01_09.txt | AC | 212 ms | 24808 KB |
subtask_01_10.txt | AC | 233 ms | 24800 KB |
subtask_01_11.txt | AC | 214 ms | 29020 KB |
subtask_01_12.txt | AC | 245 ms | 28664 KB |
subtask_01_13.txt | AC | 231 ms | 25088 KB |
subtask_01_14.txt | AC | 216 ms | 28724 KB |
subtask_01_15.txt | AC | 223 ms | 24828 KB |
subtask_01_16.txt | AC | 229 ms | 26936 KB |
subtask_01_17.txt | AC | 229 ms | 26432 KB |
subtask_01_18.txt | AC | 239 ms | 25376 KB |
subtask_01_19.txt | AC | 221 ms | 23940 KB |
subtask_01_20.txt | AC | 218 ms | 24988 KB |
subtask_01_21.txt | AC | 219 ms | 24104 KB |
subtask_01_22.txt | AC | 242 ms | 24600 KB |
subtask_01_23.txt | AC | 216 ms | 25788 KB |
subtask_01_24.txt | AC | 208 ms | 28020 KB |
subtask_01_25.txt | AC | 239 ms | 28924 KB |
subtask_01_26.txt | AC | 233 ms | 26076 KB |
subtask_01_27.txt | AC | 243 ms | 27200 KB |
subtask_01_28.txt | AC | 237 ms | 27572 KB |
subtask_01_29.txt | AC | 230 ms | 25732 KB |
subtask_01_30.txt | AC | 233 ms | 27720 KB |