Submission #162591
Source Code Expand
import java.io.BufferedReader; import java.io.InputStreamReader; import java.util.LinkedList; import java.util.Queue; public class Main { private static int R, C; private static Pos s; private static Pos g; private static char[][] p; private static int[][] dist; private static int[] dx = {1,0,-1,0}, dy = {0,1,0,-1}; public static void main(String args[]) throws Exception { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); String line = br.readLine(); String[] arrays = line.split(" "); R = Integer.parseInt(arrays[0]); C = Integer.parseInt(arrays[1]); line = br.readLine(); arrays = line.split(" "); s = new Pos(Integer.parseInt(arrays[0])-1, Integer.parseInt(arrays[1])-1); line = br.readLine(); arrays = line.split(" "); g = new Pos(Integer.parseInt(arrays[0])-1, Integer.parseInt(arrays[1])-1); p = new char[R][C]; dist = new int[R][C]; for(int i=0;i<R;i++){ line = br.readLine(); p[i] = line.toCharArray(); } search(); System.out.println(dist[g.Y][g.X]); } private static void search(){ Queue<Pos> que = new LinkedList<Pos>(); int[] cur_p = new int[2]; que.offer(s); dist[s.Y][s.X] = 0; while(que.size() > 0) { Pos point = que.poll(); if(point.Y == g.Y && point.X == g.X) break; for(int i = 0; i < 4; i++) { cur_p[0] = point.Y + dy[i]; cur_p[1] = point.X + dx[i]; if(pos_check(cur_p)) { que.offer(new Pos(cur_p[0], cur_p[1])); dist[cur_p[0]][cur_p[1]] = dist[point.Y][point.X] + 1; } } } } private static boolean pos_check(int[] pos){ if(0 > pos[0] || 0 > pos[1] || R <= pos[0] || C <= pos[1]){ return false; } if(p[pos[0]][pos[1]] == '#'){ return false; } if((dist[pos[0]][pos[1]] != 0)){ return false; } return true; } private static class Pos { private int Y, X; public Pos(int Y, int X) { this.Y = Y; this.X = X; } } }
Submission Info
Submission Time | |
---|---|
Task | C - 幅優先探索 |
User | junminya |
Language | Java (OpenJDK 1.7.0) |
Score | 100 |
Code Size | 2023 Byte |
Status | AC |
Exec Time | 416 ms |
Memory | 21168 KB |
Judge Result
Set Name | Sample | All | ||||
---|---|---|---|---|---|---|
Score / Max Score | 0 / 0 | 100 / 100 | ||||
Status |
|
|
Set Name | Test Cases |
---|---|
Sample | subtask0_sample01.txt, subtask0_sample02.txt, subtask0_sample03.txt |
All | subtask0_sample01.txt, subtask0_sample02.txt, subtask0_sample03.txt, subtask1_01.txt, subtask1_02.txt, subtask1_03.txt, subtask1_04.txt, subtask1_05.txt, subtask1_06.txt, subtask1_07.txt, subtask1_08.txt, subtask1_09.txt, subtask1_10.txt, subtask1_11.txt, subtask1_12.txt, subtask1_13.txt, subtask1_14.txt, subtask1_15.txt, subtask1_16.txt, subtask1_17.txt, subtask1_18.txt, subtask1_19.txt, subtask1_20.txt, subtask1_21.txt, subtask1_22.txt |
Case Name | Status | Exec Time | Memory |
---|---|---|---|
subtask0_sample01.txt | AC | 399 ms | 20396 KB |
subtask0_sample02.txt | AC | 385 ms | 20516 KB |
subtask0_sample03.txt | AC | 412 ms | 21132 KB |
subtask1_01.txt | AC | 387 ms | 20528 KB |
subtask1_02.txt | AC | 389 ms | 20528 KB |
subtask1_03.txt | AC | 390 ms | 20496 KB |
subtask1_04.txt | AC | 411 ms | 21168 KB |
subtask1_05.txt | AC | 384 ms | 20656 KB |
subtask1_06.txt | AC | 407 ms | 20840 KB |
subtask1_07.txt | AC | 384 ms | 20396 KB |
subtask1_08.txt | AC | 390 ms | 20528 KB |
subtask1_09.txt | AC | 397 ms | 20520 KB |
subtask1_10.txt | AC | 388 ms | 20524 KB |
subtask1_11.txt | AC | 416 ms | 21036 KB |
subtask1_12.txt | AC | 403 ms | 20964 KB |
subtask1_13.txt | AC | 394 ms | 20532 KB |
subtask1_14.txt | AC | 385 ms | 20528 KB |
subtask1_15.txt | AC | 395 ms | 20528 KB |
subtask1_16.txt | AC | 389 ms | 20528 KB |
subtask1_17.txt | AC | 407 ms | 20956 KB |
subtask1_18.txt | AC | 400 ms | 21040 KB |
subtask1_19.txt | AC | 390 ms | 20516 KB |
subtask1_20.txt | AC | 392 ms | 20628 KB |
subtask1_21.txt | AC | 406 ms | 20896 KB |
subtask1_22.txt | AC | 393 ms | 20660 KB |