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
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 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