Submission #5625749


Source Code Expand

from collections import deque

import sys
input = sys.stdin.readline
def main():
    size = map(int, input().split())
    sy, sx = map(int, input().split())
    gy, gx = map(int, input().split())
    maze = [input().rstrip() for _ in range(size[0])]

    start = (sy - 1, sx - 1)
    goal = (gy - 1, gx - 1)
    print(solve(maze, size, start, goal))

def solve(maze, size, start, goal):
    queue = deque([start])
    next_pos = []
    dist = [[None for _ in range(size[1])] for _ in range(size[0])]
    dist[start[0]][start[1]] = 0
    while goal not in next_pos:
        queue.extend(next_pos)
        go = queue.popleft()
        next_pos = [pos for pos in travel(maze, size, go) if dist[pos[0]][pos[1]] is None]
        cost = dist[go[0]][go[1]] + 1
        for p in next_pos:
            dist[p[0]][p[1]] = cost
    return dist[goal[0]][goal[1]]

def travel(maze, size, current_pos):
    x, y = current_pos
    next_pos = filter(
        lambda pos: pos[0] >= 0 and pos[1] >= 0 and pos[0] < size[0] and pos[1] < size[1],
        [(x - 1, y), (x + 1, y), (x, y - 1), (x, y + 1)]
    )
    return filter(lambda pos: maze[pos[0]][pos[1]] == '.', next_pos)

if __name__ == '__main__':
    main()

Submission Info

Submission Time
Task A - 幅優先探索
User ibara1454
Language PyPy2 (5.6.0)
Score 100
Code Size 1235 Byte
Status AC
Exec Time 118 ms
Memory 34156 KiB

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 39 ms 27372 KiB
subtask0_sample02.txt AC 36 ms 27628 KiB
subtask0_sample03.txt AC 94 ms 34156 KiB
subtask1_01.txt AC 88 ms 32748 KiB
subtask1_02.txt AC 88 ms 32620 KiB
subtask1_03.txt AC 80 ms 32748 KiB
subtask1_04.txt AC 77 ms 32620 KiB
subtask1_05.txt AC 71 ms 32492 KiB
subtask1_06.txt AC 117 ms 33516 KiB
subtask1_07.txt AC 37 ms 28780 KiB
subtask1_08.txt AC 42 ms 29932 KiB
subtask1_09.txt AC 103 ms 32620 KiB
subtask1_10.txt AC 57 ms 32364 KiB
subtask1_11.txt AC 90 ms 33132 KiB
subtask1_12.txt AC 94 ms 33132 KiB
subtask1_13.txt AC 103 ms 32748 KiB
subtask1_14.txt AC 39 ms 29292 KiB
subtask1_15.txt AC 103 ms 32620 KiB
subtask1_16.txt AC 99 ms 32620 KiB
subtask1_17.txt AC 111 ms 32876 KiB
subtask1_18.txt AC 118 ms 33640 KiB
subtask1_19.txt AC 88 ms 33256 KiB
subtask1_20.txt AC 87 ms 32620 KiB
subtask1_21.txt AC 97 ms 32620 KiB
subtask1_22.txt AC 85 ms 32620 KiB