結果
問題 | No.2695 Warp Zone |
ユーザー |
![]() |
提出日時 | 2024-03-23 14:51:35 |
言語 | PyPy3 (7.3.15) |
結果 |
AC
|
実行時間 | 235 ms / 2,000 ms |
コード長 | 837 bytes |
コンパイル時間 | 296 ms |
コンパイル使用メモリ | 82,304 KB |
実行使用メモリ | 110,080 KB |
最終ジャッジ日時 | 2024-09-30 13:29:13 |
合計ジャッジ時間 | 4,614 ms |
ジャッジサーバーID (参考情報) |
judge3 / judge1 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 24 |
ソースコード
H,W,N = map(int,input().split())ABCD = [list(map(int,input().split())) for _ in range(N)]INF = H + W - 1Start = []E = [[] for _ in range(N+2)]for i in range(N):a0,b0,c0,d0 = ABCD[i]E[0].append((i+1,a0+b0-2))for j in range(N):a1,b1,c1,d1 = ABCD[j]if i == j:continueE[i+1].append((j+1,abs(a1-c0) + abs(b1-d0)))E[i+1].append((N+1,abs(H-c0) + abs(W-d0)))from heapq import *D = [INF] * (N+2)#普通のダイクストラdef dijkstra():D[0] = 0q = [(0,0)]while len(q) > 0:d, u = heappop(q)#下のifでTLE解消することがあるif d > D[u]: continuefor a,b in E[u]:if D[a] > D[u] + b + 1:D[a] = D[u] + b + 1heappush(q, (D[a], a))returndijkstra()print(D[N+1] - 1)