結果
| 問題 | No.2569 はじめてのおつかいHard |
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2026-09-12 10:26:46 |
| 言語 | PyPy3 (7.3.23 + ACL) |
| 結果 |
AC
不安定
|
| 実行時間 | 506 ms / 2,000 ms |
| + 683µs | |
| コード長 | 831 bytes |
| 記録 | |
| コンパイル時間 | 72 ms |
| コンパイル使用メモリ | 80,768 KB |
| 実行使用メモリ | 140,160 KB |
| 最終ジャッジ日時 | 2026-09-12 10:27:03 |
| 合計ジャッジ時間 | 7,954 ms |
|
ジャッジサーバーID (参考情報) |
judge1_0 / judge3_0 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 2 |
| other | AC * 12 |
ソースコード
import heapq
INFTY = 10**15
N,M = map(int,input().split())
FG = {i:[] for i in range(1,N+1)}
BG = {i:[] for i in range(1,N+1)}
for _ in range(M):
a,b,c = map(int,input().split())
FG[a].append((b,c))
BG[b].append((a,c))
def dijkstra(s,G,dist):
dist[s] = 0
que = [(0,s)]
while que:
d,x = heapq.heappop(que)
if dist[x]<d:continue
for y,c in G[x]:
if dist[y]>d+c:
dist[y] = d+c
heapq.heappush(que,(dist[y],y))
dist1 = [INFTY]*(N+1)
dijkstra(N-1,FG,dist1)
dist2 = [INFTY]*(N+1)
dijkstra(N,FG,dist2)
dist3 = [INFTY]*(N+1)
dijkstra(N-1,BG,dist3)
dist4 = [INFTY]*(N+1)
dijkstra(N,BG,dist4)
for k in range(1,N-2+1):
d = min(dist1[N]+dist2[k]+dist3[k],dist1[k]+dist2[N-1]+dist4[k])
if d>=INFTY:
print(-1)
else:
print(d)