Submission #2149090


Source Code Expand

import java.io.IOException;
import java.util.ArrayDeque;
import java.util.Queue;
import java.util.Scanner;

public class Main {

	static int[] a = {-1, 1, 0, 0};
	static int[] b = {0, 0, -1, 1};
	static char ng = '#';
	static char ok = '.';
	static int INF = 1 << 29;

	public static void main(String[] args) throws IOException {

		Scanner in = new Scanner(System.in);
		int r = in.nextInt();
		int c = in.nextInt();
		int sy = in.nextInt();
		int sx = in.nextInt();
		int gy = in.nextInt();
		int gx = in.nextInt();

		char[][] maze = new char[r+1][c+1];
		int[][] dist = new int[r+1][c+1];
		for (int i = 1; i <= r; i++) {
			for (int j = 1; j <= c; j++) {
				dist[i][j] = INF;
			}
		}
		for (int i = 1; i <= r; i++) {
			maze[i] = (" "+in.next()).toCharArray();
		}

		Queue<Point> q = new ArrayDeque<>();
		q.add(new Point(sy, sx));
		dist[sy][sx] = 0;

		while (!q.isEmpty()) {
			Point p = q.remove();
			int ny = p.y;
			int nx = p.x;
			for (int i = 0; i < 4; i++) {
				int my = ny + a[i];
				int mx = nx + b[i];
				if (my < 1 || mx < 1 || my > r || mx > c
						|| maze[my][mx] == ng
						|| dist[my][mx] <= dist[ny][nx] + 1) {
					continue;
				}
				dist[my][mx] = dist[ny][nx] + 1;
				q.add(new Point(mx, my));
			}
		}
		System.out.println(dist[gy][gx]);
	}

	static class Point {
		int x;
		int y;
		Point(int x, int y) {
			this.x = x;
			this.y = y;
		}
	}

}

Submission Info

Submission Time
Task C - 幅優先探索
User tutuz
Language Java8 (OpenJDK 1.8.0)
Score 100
Code Size 1452 Byte
Status AC
Exec Time 115 ms
Memory 25556 KB

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 100 / 100
Status
AC × 3
AC × 25
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 115 ms 21076 KB
subtask0_sample02.txt AC 93 ms 19284 KB
subtask0_sample03.txt AC 100 ms 20948 KB
subtask1_01.txt AC 98 ms 18772 KB
subtask1_02.txt AC 100 ms 19668 KB
subtask1_03.txt AC 98 ms 21844 KB
subtask1_04.txt AC 101 ms 21844 KB
subtask1_05.txt AC 103 ms 20560 KB
subtask1_06.txt AC 100 ms 21716 KB
subtask1_07.txt AC 93 ms 21844 KB
subtask1_08.txt AC 96 ms 19796 KB
subtask1_09.txt AC 101 ms 19796 KB
subtask1_10.txt AC 98 ms 21844 KB
subtask1_11.txt AC 100 ms 19540 KB
subtask1_12.txt AC 100 ms 20564 KB
subtask1_13.txt AC 99 ms 18772 KB
subtask1_14.txt AC 96 ms 19796 KB
subtask1_15.txt AC 98 ms 25556 KB
subtask1_16.txt AC 98 ms 21844 KB
subtask1_17.txt AC 98 ms 18772 KB
subtask1_18.txt AC 99 ms 19796 KB
subtask1_19.txt AC 99 ms 18772 KB
subtask1_20.txt AC 100 ms 19284 KB
subtask1_21.txt AC 100 ms 19924 KB
subtask1_22.txt AC 98 ms 19668 KB