結果
問題 | No.2695 Warp Zone |
ユーザー |
![]() |
提出日時 | 2024-03-22 22:43:25 |
言語 | Python3 (3.13.1 + numpy 2.2.1 + scipy 1.14.1) |
結果 |
TLE
|
実行時間 | - |
コード長 | 1,162 bytes |
コンパイル時間 | 322 ms |
コンパイル使用メモリ | 12,800 KB |
実行使用メモリ | 28,708 KB |
最終ジャッジ日時 | 2024-09-30 12:08:21 |
合計ジャッジ時間 | 3,950 ms |
ジャッジサーバーID (参考情報) |
judge3 / judge5 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | -- * 3 |
other | AC * 3 TLE * 1 -- * 20 |
ソースコード
import heapqdef dijkstra(s):hq=[]heapq.heappush(hq,[0,s])dist=[-1 for _ in range(N)]karidist=[10**9+1 for _ in range(N)]while len(hq)!=0:d,p=heapq.heappop(hq)if dist[p]==-1:dist[p]=dfor e,c in edge[p]:if karidist[e]>d+c:karidist[e]=d+cheapq.heappush(hq,[d+c,e])return distdef csv(i,j):return i*W+jH,W,N=map(int,input().split())dat=[]poses=[(0,0),(H-1,W-1)]poses=set(poses)for i in range(N):a,b,c,d=map(int,input().split())a-=1b-=1c-=1d-=1dat.append([a,b,c,d])poses.add((a,b))poses.add((c,d))edge=[[] for _ in range(len(poses))]poses=list(poses)for a,b,c,d in dat:edge[poses.index((a,b))].append([poses.index((c,d)),1])for i in range(len(poses)):for j in range(i+1,len(poses)):a,b=poses[i]c,d=poses[j]edge[poses.index((a,b))].append([poses.index((c,d)),abs(a-c)+abs(b-d)])edge[poses.index((c,d))].append([poses.index((a,b)),abs(a-c)+abs(b-d)])N=len(poses)dist=dijkstra(poses.index((0,0)))print(dist[poses.index((H-1,W-1))])