結果

問題 No.2695 Warp Zone
ユーザー yansi819yansi819
提出日時 2024-06-01 14:39:56
言語 PyPy3
(7.3.15)
結果
MLE  
実行時間 -
コード長 881 bytes
コンパイル時間 450 ms
コンパイル使用メモリ 82,384 KB
実行使用メモリ 849,228 KB
最終ジャッジ日時 2024-06-01 14:39:59
合計ジャッジ時間 2,816 ms
ジャッジサーバーID
(参考情報)
judge4 / judge1
このコードへのチャレンジ
(要ログイン)

テストケース

テストケース表示
入力 結果 実行時間
実行使用メモリ
testcase_00 AC 42 ms
52,992 KB
testcase_01 MLE -
testcase_02 -- -
testcase_03 -- -
testcase_04 -- -
testcase_05 -- -
testcase_06 -- -
testcase_07 -- -
testcase_08 -- -
testcase_09 -- -
testcase_10 -- -
testcase_11 -- -
testcase_12 -- -
testcase_13 -- -
testcase_14 -- -
testcase_15 -- -
testcase_16 -- -
testcase_17 -- -
testcase_18 -- -
testcase_19 -- -
testcase_20 -- -
testcase_21 -- -
testcase_22 -- -
testcase_23 -- -
testcase_24 -- -
testcase_25 -- -
testcase_26 -- -
権限があれば一括ダウンロードができます

ソースコード

diff #

from heapq import heapify, heappop, heappush
H, W, N = map(int, input().split())
D = {}
for _ in range(N):
    a, b, c, d = map(int, input().split())
    a -= 1; b -= 1; c -= 1; d -= 1
    D[(a, b)] = (c, d)
dist = [10 ** 18] * (H * W)
dist[0] = 0
pq = [(0, 0)]
heapify(pq)
dx = [-1, 0, 0, 1]
dy = [0, -1, 1, 0]
while len(pq) > 0:
    d, id = heappop(pq)
    x, y = id // W, id % W
    if (x, y) in D:
        v, w = D[(x, y)]
        if dist[v * W + w] > dist[id] + 1:
            dist[v * W + w] = dist[id] + 1
            heappush(pq, (dist[v * W + w], v * W + w))
    for i in range(4):
        nx = x + dx[i]
        ny = y + dy[i]
        if 0 > nx or nx >= H or 0 > ny or ny >= W: continue
        if dist[nx * W + ny] > dist[id] + 1:
            dist[nx * W + ny] = dist[id] + 1
            heappush(pq, (dist[nx * W + ny], nx * W + ny))
print(dist[(H - 1) * W + (W - 1)])
0