Submission #691650
Source Code Expand
using System;
using System.Collections.Generic;
namespace typicalContest002
{
class Program
{
public struct Point
{
public int x;
public int y;
public Point(int x, int y)
{
this.x = x;
this.y = y;
}
}
static void Main(string[] args)
{
/* INPUT DATA */
string[] str = Console.ReadLine().Split(' ');
int R = int.Parse(str[0]);
int C = int.Parse(str[1]);
str = Console.ReadLine().Split(' ');
int sy = int.Parse(str[0]);
int sx = int.Parse(str[1]);
str = Console.ReadLine().Split(' ');
int gy = int.Parse(str[0]);
int gx = int.Parse(str[1]);
string[,] mapData = new string[R, C];
sy--; sx--; gy--; gx--;
for (int i = 0; i < R; i++)
{
string str2 = Console.ReadLine();
for (int j = 0; j < C; j++)
{
mapData[i, j] = str2.Substring(j, 1);
}
}
/* SEARCH */
Queue<Point> que = new Queue<Point>();
int[,] retMap = new int[R, C];
for (int i = 0; i < R; i++)
{
for (int j = 0; j < C; j++)
{
retMap[i, j] = -1;
}
}
Point start = new Point(sx, sy);
que.Enqueue(start);
retMap[sy, sx] = 0;
int answer = -1;
int[,] addList = new int[4, 2]
{
{ -1, 0 },
{1, 0 },
{0, -1 },
{0, 1 }
};
while (true)
{
Point qPoint = que.Dequeue();
for (int cnt = 0; cnt < addList.GetLength(0); cnt++)
{
int targetX = qPoint.x + addList[cnt, 0];
int targetY = qPoint.y + addList[cnt, 1];
if ((targetX >= 0) && (targetX < C) && (targetY >= 0) && (targetY < R))
{
if (mapData[targetY, targetX] != "#")
{
if (retMap[targetY, targetX] == -1)
{
retMap[targetY, targetX] = retMap[qPoint.y, qPoint.x] + 1;
Point tmp = new Point(targetX, targetY);
que.Enqueue(tmp);
}
}
}
if ((targetY == gy) && (targetX == gx))
{
answer = retMap[targetY, targetX];
break;
}
}
if(answer != -1)
{
Console.WriteLine(answer);
break;
}
}
}
}
}
Submission Info
Submission Time |
|
Task |
A - 幅優先探索 |
User |
yuusuwalann |
Language |
C# (Mono 4.6.2.0) |
Score |
100 |
Code Size |
3164 Byte |
Status |
AC |
Exec Time |
40 ms |
Memory |
2904 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 |
38 ms |
2904 KB |
subtask0_sample02.txt |
AC |
36 ms |
2776 KB |
subtask0_sample03.txt |
AC |
37 ms |
2904 KB |
subtask1_01.txt |
AC |
35 ms |
2904 KB |
subtask1_02.txt |
AC |
37 ms |
2904 KB |
subtask1_03.txt |
AC |
36 ms |
2904 KB |
subtask1_04.txt |
AC |
36 ms |
2904 KB |
subtask1_05.txt |
AC |
35 ms |
2904 KB |
subtask1_06.txt |
AC |
35 ms |
2904 KB |
subtask1_07.txt |
AC |
34 ms |
2776 KB |
subtask1_08.txt |
AC |
35 ms |
2904 KB |
subtask1_09.txt |
AC |
35 ms |
2904 KB |
subtask1_10.txt |
AC |
35 ms |
2904 KB |
subtask1_11.txt |
AC |
40 ms |
2904 KB |
subtask1_12.txt |
AC |
37 ms |
2904 KB |
subtask1_13.txt |
AC |
37 ms |
2904 KB |
subtask1_14.txt |
AC |
36 ms |
2904 KB |
subtask1_15.txt |
AC |
37 ms |
2904 KB |
subtask1_16.txt |
AC |
37 ms |
2904 KB |
subtask1_17.txt |
AC |
35 ms |
2904 KB |
subtask1_18.txt |
AC |
35 ms |
2904 KB |
subtask1_19.txt |
AC |
35 ms |
2904 KB |
subtask1_20.txt |
AC |
35 ms |
2904 KB |
subtask1_21.txt |
AC |
35 ms |
2904 KB |
subtask1_22.txt |
AC |
35 ms |
2904 KB |