Submission #3925710


Source Code Expand

import java.util.*;
import java.awt.Point;
class Main{
    static int cnt;
    static char[][] maze;
    static int[][] count;
    static int R;
    static int C;
    static Queue<Point> q;
    public static void main(String[] args) {
	Scanner sc = new Scanner(System.in);
	R = sc.nextInt();
	C = sc.nextInt();
	Point start = new Point(sc.nextInt()-1, sc.nextInt()-1);
	Point end = new Point(sc.nextInt()-1, sc.nextInt()-1);
	maze = new char[R][C];
	count = new int[R][C];
	for(int i = 0; i<R; i++) {
            for(int j = 0; j<C; j++) {
                count[i][j] = 100000;
	    }
        }
	for(int i = 0; i<R; i++) {
	    String nextLine = sc.next();
	    for(int j = 0; j<C; j++) {
		maze[i][j] = nextLine.charAt(j);
	    }
	}

	q = new ArrayDeque<Point>();
	q.add(start);
	count[(int)(start.getX())][(int)(start.getY())] = 0;
	cnt = 0;
	while(q.peek() != null) {
	    Point p = q.poll();
	    if(count[(int)(end.getX())][(int)(end.getY())]<100000) break;
	    addPQ(p);
	    // 周りをqueueに入れる処理
	    //countを増やす
	    //塗り替え作業
	}
	System.out.println(count[(int)(end.getX())][(int)(end.getY())]);

    }

    public static void addPQ(Point p) {
	int x = (int)(p.getX());
	int y = (int)(p.getY());
	maze[x][y] = '#';
	//	System.out.println("x,y = " + x + " , " + y);
	if(y+1<C && maze[x][y+1] == '.') {
	    q.add(new Point(x,y+1));
	    count[x][y+1] = count[x][y] + 1;
	}
	if(y-1>=0 && maze[x][y-1] == '.') {
	    q.add(new Point(x,y-1));
	    count[x][y-1] = count[x][y] + 1;

	}
	if(x-1>=0 && maze[x-1][y] == '.') {
	    q.add(new Point(x-1,y));
	    count[x-1][y] = count[x][y] + 1;
	}
	if(x+1<R && maze[x+1][y] == '.') {
	    q.add(new Point(x+1,y));
	    count[x+1][y] = count[x][y] + 1;
	}
    }

}

Submission Info

Submission Time
Task C - 幅優先探索
User MiraiNIKI
Language Java8 (OpenJDK 1.8.0)
Score 0
Code Size 1816 Byte
Status TLE
Exec Time 2121 ms
Memory 454288 KB

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 0 / 100
Status
AC × 2
TLE × 1
AC × 13
TLE × 12
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 96 ms 19156 KB
subtask0_sample02.txt AC 96 ms 21204 KB
subtask0_sample03.txt TLE 2114 ms 409956 KB
subtask1_01.txt AC 102 ms 18772 KB
subtask1_02.txt AC 116 ms 21204 KB
subtask1_03.txt AC 105 ms 21716 KB
subtask1_04.txt TLE 2118 ms 407512 KB
subtask1_05.txt TLE 2108 ms 386412 KB
subtask1_06.txt TLE 2111 ms 422548 KB
subtask1_07.txt AC 99 ms 19284 KB
subtask1_08.txt AC 104 ms 19540 KB
subtask1_09.txt TLE 2114 ms 454288 KB
subtask1_10.txt AC 108 ms 19028 KB
subtask1_11.txt TLE 2114 ms 408960 KB
subtask1_12.txt TLE 2115 ms 388984 KB
subtask1_13.txt AC 222 ms 69080 KB
subtask1_14.txt AC 102 ms 21204 KB
subtask1_15.txt TLE 2111 ms 432572 KB
subtask1_16.txt TLE 2108 ms 368832 KB
subtask1_17.txt TLE 2107 ms 364120 KB
subtask1_18.txt TLE 2121 ms 430276 KB
subtask1_19.txt AC 107 ms 21972 KB
subtask1_20.txt AC 105 ms 20688 KB
subtask1_21.txt TLE 2107 ms 414380 KB
subtask1_22.txt AC 130 ms 20412 KB