結果
| 問題 |
No.3326 岩井星人の帰星
|
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2025-11-01 16:04:44 |
| 言語 | PyPy3 (7.3.15) |
| 結果 |
AC
|
| 実行時間 | 590 ms / 2,000 ms |
| コード長 | 1,119 bytes |
| コンパイル時間 | 403 ms |
| コンパイル使用メモリ | 82,364 KB |
| 実行使用メモリ | 124,164 KB |
| 最終ジャッジ日時 | 2025-11-01 16:05:18 |
| 合計ジャッジ時間 | 17,938 ms |
|
ジャッジサーバーID (参考情報) |
judge3 / judge4 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 3 |
| other | AC * 59 |
ソースコード
from collections import deque
import heapq
import sys
input = sys.stdin.readline
N, M = map(int, input().split())
G = [[] for _ in range(N)]
for _ in range(M):
u, v = map(int, input().split())
u-=1
v-=1
G[u].append(v)
G[v].append(u)
L = int(input())
JK = [list(map(int, input().split())) for _ in range(L)]
hp = []
INF = 10**9
dist = [-1 for _ in range(N)]
JK.sort(key=lambda x:-x[1])
for j, k in JK:
j-=1
if dist[j] < k:
dist[j] = k
if k>0:
hp.append((-k, j))
heapq.heapify(hp)
while hp:
d, v = heapq.heappop(hp)
d = -d
for nv in G[v]:
if dist[nv]<dist[v]-1:
dist[nv] = dist[v]-1
if dist[nv]>0:
heapq.heappush(hp, (-dist[nv], nv))
dist2 = [INF for _ in range(N)]
deq = deque()
if dist[0]==-1:
deq.append(0)
dist2[0] = 0
while deq:
v = deq.popleft()
for nv in G[v]:
if dist[nv]!=-1:
continue
if dist2[nv]>dist2[v]+1:
dist2[nv] = dist2[v]+1
deq.append(nv)
if dist2[N-1]==INF:
print("No")
else:
print("Yes")
print(dist2[N-1])