Submission #24021206


Source Code Expand

import sys
from collections import deque

input = sys.stdin.readline


def main():
    h, w = map(int, input().split())
    si, sj = (int(i) - 1 for i in input().split())
    gi, gj = (int(i) - 1 for i in input().split())
    valid = [[i != '#' for i in input()] for _ in range(h)]
    idx0 = [[-1 for j in i] for i in valid]
    idx1 = [[-1 for j in i] for i in valid]
    edge = []
    for i in range(h):
        for j in range(w):
            if not valid[i][j]:
                continue
            if i > 0 and valid[i - 1][j]:
                idx0[i][j] = idx0[i - 1][j]
            else:
                idx0[i][j] = len(edge)
                edge.append([])
            if j > 0 and valid[i][j - 1]:
                idx1[i][j] = idx1[i][j - 1]
            else:
                idx1[i][j] = len(edge)
                edge.append([])

            edge[idx0[i][j]].append(idx1[i][j])
            edge[idx1[i][j]].append(idx0[i][j])

    dist = [-1 for _ in edge]
    q = deque()
    dist[idx0[si][sj]] = 0
    dist[idx1[si][sj]] = 0
    q.append(idx0[si][sj])
    q.append(idx1[si][sj])
    while q:
        p = q.popleft()
        for e in edge[p]:
            if dist[e] == -1:
                dist[e] = dist[p] + 1
                q.append(e)

    print(min(dist[idx0[gi][gj]], dist[idx1[gi][gj]]))


if __name__ == "__main__":
    main()

Submission Info

Submission Time
Task 043 - Maze Challenge with Lack of Sleep(★4)
User riantkb
Language Python (3.8.2)
Score 4
Code Size 1348 Byte
Status AC
Exec Time 932 ms
Memory 117324 KiB

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 4 / 4
Status
AC × 3
AC × 28
Set Name Test Cases
Sample sample_01.txt, sample_02.txt, sample_03.txt
All in01.txt, in02.txt, in03.txt, in04.txt, in05.txt, in06.txt, in07.txt, in08.txt, in09.txt, in10.txt, in11.txt, in12.txt, in13.txt, in14.txt, in15.txt, in16.txt, in17.txt, in18.txt, in19.txt, in20.txt, in21.txt, in22.txt, in23.txt, in24.txt, in25.txt, sample_01.txt, sample_02.txt, sample_03.txt
Case Name Status Exec Time Memory
in01.txt AC 38 ms 9692 KiB
in02.txt AC 31 ms 10016 KiB
in03.txt AC 34 ms 10236 KiB
in04.txt AC 38 ms 10196 KiB
in05.txt AC 22 ms 9640 KiB
in06.txt AC 33 ms 9684 KiB
in07.txt AC 28 ms 9544 KiB
in08.txt AC 27 ms 9312 KiB
in09.txt AC 21 ms 9248 KiB
in10.txt AC 37 ms 10012 KiB
in11.txt AC 36 ms 10020 KiB
in12.txt AC 28 ms 9580 KiB
in13.txt AC 23 ms 9548 KiB
in14.txt AC 31 ms 9440 KiB
in15.txt AC 29 ms 9580 KiB
in16.txt AC 932 ms 73892 KiB
in17.txt AC 869 ms 56156 KiB
in18.txt AC 926 ms 64832 KiB
in19.txt AC 826 ms 54728 KiB
in20.txt AC 822 ms 54380 KiB
in21.txt AC 781 ms 50816 KiB
in22.txt AC 445 ms 34164 KiB
in23.txt AC 489 ms 49420 KiB
in24.txt AC 824 ms 54428 KiB
in25.txt AC 912 ms 117324 KiB
sample_01.txt AC 23 ms 9500 KiB
sample_02.txt AC 21 ms 9208 KiB
sample_03.txt AC 23 ms 9500 KiB