Submission #1352997


Source Code Expand

import std.stdio, std.string, std.conv, std.range, std.array, std.algorithm;
import std.uni, std.math, std.container, std.typecons, std.typetuple;
import core.bitop, std.datetime;

immutable int mod = 10^^9 + 7;
immutable int inf = 10^^5;

void main(){
    alias Pair = Tuple!(int, "y", int, "x");

    int r, c, sy, sx, gy, gx;
    readVars(r, c);
    readVars(sy, sx);
    readVars(gy, gx);

    sy--;sx--;gy--;gx--;

    auto maze = new char[][](r, c);
    iota(r).each!(i => maze[i][] = readln.chomp.to!(char[]));

    auto q = DList!Pair();
    auto d = new int[][](r, c);
    iota(r).each!(i => d[i][] = inf);
    d[sy][sx] = 0;
    q.insertBack(Pair(sy, sx));

    auto dy = [1, 0, -1, 0], dx = [0, 1, 0, -1];
    int ny, nx;

    while (!q.empty) {
        auto point = q.front; q.removeFront;

        if (point.y == gy && point.x == gx) {
            break;
        }

        foreach (i ; 0 .. 4) {
            ny = point.y + dy[i];
            nx = point.x + dx[i];

            if (0 <= ny && ny < r && 0 <= nx && nx < c && maze[ny][nx] == '.' && d[ny][nx] == inf) {
                d[ny][nx] = d[point.y][point.x] + 1;
                q.insertBack(Pair(ny, nx));
            }
        }
    }

    writeln(d[gy][gx]);
}


void readVars(T...)(auto ref T args)
{
    auto line = readln.split;
    foreach(ref arg ; args){
        arg = line.front.to!(typeof(arg));
        line.popFront;
    }
    if(!line.empty){
        writeln(line);
        throw new Exception("args num < input num");
    }
}

Submission Info

Submission Time
Task C - 幅優先探索
User nanae
Language D (DMD64 v2.070.1)
Score 100
Code Size 1572 Byte
Status AC
Exec Time 1 ms
Memory 380 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 1 ms 256 KB
subtask0_sample02.txt AC 1 ms 256 KB
subtask0_sample03.txt AC 1 ms 380 KB
subtask1_01.txt AC 1 ms 380 KB
subtask1_02.txt AC 1 ms 380 KB
subtask1_03.txt AC 1 ms 380 KB
subtask1_04.txt AC 1 ms 380 KB
subtask1_05.txt AC 1 ms 380 KB
subtask1_06.txt AC 1 ms 380 KB
subtask1_07.txt AC 1 ms 256 KB
subtask1_08.txt AC 1 ms 256 KB
subtask1_09.txt AC 1 ms 380 KB
subtask1_10.txt AC 1 ms 256 KB
subtask1_11.txt AC 1 ms 380 KB
subtask1_12.txt AC 1 ms 380 KB
subtask1_13.txt AC 1 ms 380 KB
subtask1_14.txt AC 1 ms 256 KB
subtask1_15.txt AC 1 ms 380 KB
subtask1_16.txt AC 1 ms 380 KB
subtask1_17.txt AC 1 ms 380 KB
subtask1_18.txt AC 1 ms 380 KB
subtask1_19.txt AC 1 ms 380 KB
subtask1_20.txt AC 1 ms 380 KB
subtask1_21.txt AC 1 ms 380 KB
subtask1_22.txt AC 1 ms 380 KB