Submission #334026


Source Code Expand

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Solution {
    class Solution {
        static int[] r;
        static int R, C, sx, sy, gx, gy;
        static char[,] c;
        static void Main(string[] args) {
            r = ReadAsInt();
            R = r[0];
            C = r[1];
            r = ReadAsInt();
            sy = r[0] - 1;
            sx = r[1] - 1;
            r = ReadAsInt();
            gy = r[0] - 1;
            gx = r[1] - 1;

            c = new char[R, C];
            for (int i = 0; i < R; i++) {
                string s = Console.ReadLine();
                for (int j = 0; j < C; j++) {
                    c[i, j] = s[j];
                }
            }

            Queue<Position> q = new Queue<Position>();
            q.Enqueue(new Position(sx, sy));

            int[,] countTable = new int[R,C];
            while (q.Count != 0) {
                Position p = q.Dequeue();
                int count = countTable[p.y, p.x];
                int[] dirx = { 0, 0, 1, -1 };
                int[] diry = { 1, -1, 0, 0 };
                for (int i = 0; i < 4; i++) {
                    if (p.y + diry[i] == gy && p.x + dirx[i] == gx) {
                        Console.WriteLine(count+1);
                        return;
                    }
                    if (c[p.y + diry[i], p.x + dirx[i]] == '.' &&
                        countTable[p.y + diry[i], p.x + dirx[i]] == 0) {
                        q.Enqueue(new Position(p.x + dirx[i], p.y + diry[i]));
                        countTable[p.y + diry[i], p.x + dirx[i]] = count + 1;
                    }
                }
            }

        }
        static int[] ReadAsInt() { return Console.ReadLine().Trim().Split(' ').Select(int.Parse).ToArray(); }
        static long[] ReadAsLong() { return Console.ReadLine().Trim().Split(' ').Select(long.Parse).ToArray(); }
        static float[] ReadAsFloat() { return Console.ReadLine().Trim().Split(' ').Select(float.Parse).ToArray(); }
    }

    public class Position {
        public int x;
        public int y;
        public Position(int x, int y) {
            this.x = x;
            this.y = y;
        }
    }
}

Submission Info

Submission Time
Task C - 幅優先探索
User femto16
Language C# (Mono 2.10.8.1)
Score 100
Code Size 2277 Byte
Status AC
Exec Time 181 ms
Memory 10280 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 143 ms 10016 KB
subtask0_sample02.txt AC 131 ms 10052 KB
subtask0_sample03.txt AC 133 ms 10212 KB
subtask1_01.txt AC 134 ms 10164 KB
subtask1_02.txt AC 144 ms 10212 KB
subtask1_03.txt AC 138 ms 10140 KB
subtask1_04.txt AC 137 ms 10220 KB
subtask1_05.txt AC 133 ms 10240 KB
subtask1_06.txt AC 132 ms 10216 KB
subtask1_07.txt AC 130 ms 9960 KB
subtask1_08.txt AC 130 ms 10076 KB
subtask1_09.txt AC 134 ms 10212 KB
subtask1_10.txt AC 141 ms 10068 KB
subtask1_11.txt AC 136 ms 10212 KB
subtask1_12.txt AC 159 ms 10232 KB
subtask1_13.txt AC 133 ms 10212 KB
subtask1_14.txt AC 164 ms 10088 KB
subtask1_15.txt AC 181 ms 10280 KB
subtask1_16.txt AC 150 ms 10188 KB
subtask1_17.txt AC 136 ms 10208 KB
subtask1_18.txt AC 138 ms 10196 KB
subtask1_19.txt AC 135 ms 10160 KB
subtask1_20.txt AC 135 ms 10236 KB
subtask1_21.txt AC 161 ms 10188 KB
subtask1_22.txt AC 171 ms 10152 KB