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