Submission #2698010


Source Code Expand

import java.util.LinkedList;
import java.util.Queue;
import java.util.Scanner;

class Pair
{
	int i, j;

	public Pair(int i, int j)
	{
		this.i = i;
		this.j = j;
	}
}

public class Main
{
	static int R, C, si, sj, gi, gj;
	static char[][] grid;
	static int[][] d;
	static int[] di =
		{ -1, 0, 1, 0 };
	static int[] dj =
		{ 0, 1, 0, -1 };

	//[i][j]
	//U: [i-1][j] = [i + di[0]][j + dj[0]]
	//R: [i][j+1] = [i + di[1]][j + dj[1]]
	//D: [i+1][j]
	//L: [i][j-1]

	static int bfs()
	{
		Pair start = new Pair(si, sj);
		//キューをつくる
		Queue<Pair> que = new LinkedList<Pair>();
		//初期状態をキューにいれる
		que.add(start);
		while (!que.isEmpty())
		{
			//現状態を取り出す
			Pair now = que.poll();
			for (int k = 0; k < 4; k++)
			{
				int ni = now.i + di[k];
				int nj = now.j + dj[k];
				if (grid[ni][nj] == '.'
						&& d[ni][nj] == 0)
				{
					d[ni][nj] = d[now.i][now.j] + 1;
					Pair next = new Pair(ni, nj);
					que.add(next);
				}
			}
		}
		return d[gi][gj];
	}

	public static void main(String[] args)
	{
		Scanner in = new Scanner(System.in);
		R = in.nextInt();
		C = in.nextInt();
		si = in.nextInt() - 1;
		sj = in.nextInt() - 1;
		gi = in.nextInt() - 1;
		gj = in.nextInt() - 1;
		grid = new char[R][C];
		d = new int[R][C];
		for (int i = 0; i < R; i++)
		{
			String str = in.next();
			for (int j = 0; j < C; j++)
			{
				grid[i][j] = str.charAt(j);
			}
		}
		System.out.println(bfs());
		in.close();
	}
}

Submission Info

Submission Time
Task C - 幅優先探索
User LitMc
Language Java8 (OpenJDK 1.8.0)
Score 100
Code Size 1549 Byte
Status AC
Exec Time 107 ms
Memory 21972 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 93 ms 19796 KB
subtask0_sample02.txt AC 94 ms 21844 KB
subtask0_sample03.txt AC 102 ms 21972 KB
subtask1_01.txt AC 107 ms 21712 KB
subtask1_02.txt AC 101 ms 19668 KB
subtask1_03.txt AC 99 ms 18644 KB
subtask1_04.txt AC 105 ms 19028 KB
subtask1_05.txt AC 101 ms 19924 KB
subtask1_06.txt AC 99 ms 18772 KB
subtask1_07.txt AC 95 ms 19792 KB
subtask1_08.txt AC 97 ms 19796 KB
subtask1_09.txt AC 102 ms 19284 KB
subtask1_10.txt AC 99 ms 18644 KB
subtask1_11.txt AC 100 ms 19028 KB
subtask1_12.txt AC 102 ms 18644 KB
subtask1_13.txt AC 100 ms 19924 KB
subtask1_14.txt AC 99 ms 18644 KB
subtask1_15.txt AC 99 ms 21844 KB
subtask1_16.txt AC 100 ms 19412 KB
subtask1_17.txt AC 101 ms 17876 KB
subtask1_18.txt AC 103 ms 21712 KB
subtask1_19.txt AC 102 ms 21204 KB
subtask1_20.txt AC 101 ms 18644 KB
subtask1_21.txt AC 101 ms 18772 KB
subtask1_22.txt AC 100 ms 19284 KB