結果
問題 |
No.1601 With Animals into Institute
|
ユーザー |
|
提出日時 | 2021-07-11 09:16:45 |
言語 | PyPy3 (7.3.15) |
結果 |
AC
|
実行時間 | 2,320 ms / 3,000 ms |
コード長 | 712 bytes |
コンパイル時間 | 370 ms |
コンパイル使用メモリ | 82,432 KB |
実行使用メモリ | 176,792 KB |
最終ジャッジ日時 | 2024-07-02 02:59:44 |
合計ジャッジ時間 | 31,806 ms |
ジャッジサーバーID (参考情報) |
judge4 / judge5 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 36 |
ソースコード
n,m=map(int,input().split()) abcx=[list(map(int,input().split())) for _ in range(m)] g=[[] for _ in range(n)] for a,b,c,x in abcx: a,b=a-1,b-1 g[a].append([b,c,x]) g[b].append([a,c,x]) inf=float('inf') seen=[inf]*(2*n) todo=[[0,2*n-1]] seen[-1]=0 from heapq import heappop,heappush while todo: d,v=heappop(todo) if v>=n: for nv,nd,x in g[v-n]: if x==1: if seen[nv]>d+nd: seen[nv]=d+nd heappush(todo,[d+nd,nv]) else: if seen[nv+n]>d+nd: seen[nv+n]=d+nd heappush(todo,[d+nd,nv+n]) else: for nv,nd,x in g[v]: if seen[nv]>d+nd: seen[nv]=d+nd heappush(todo,[d+nd,nv]) for i in range(n-1): print(seen[i])