結果
問題 |
No.1473 おでぶなおばけさん
|
ユーザー |
![]() |
提出日時 | 2021-05-14 16:00:24 |
言語 | PyPy3 (7.3.15) |
結果 |
AC
|
実行時間 | 891 ms / 2,000 ms |
コード長 | 839 bytes |
コンパイル時間 | 162 ms |
コンパイル使用メモリ | 82,628 KB |
実行使用メモリ | 138,876 KB |
最終ジャッジ日時 | 2024-10-01 20:34:40 |
合計ジャッジ時間 | 19,808 ms |
ジャッジサーバーID (参考情報) |
judge3 / judge1 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 2 |
other | AC * 47 |
ソースコード
import collections import heapq import math N,M=map(int,input().split()) G = collections.defaultdict(list) for _ in range(M): S,T,D = map(int, input().split()) G[S-1].append((T-1,D)) G[T-1].append((S-1,D)) def bfs(max_w): que = collections.deque([(0,0)]) # index, something val visited = [-1]*N while que: i, c = que.popleft() # queはFIFO if visited[i] >= 0: continue visited[i] = c for j, d in G[i]: if visited[j] == -1 and max_w <= d: # まだ未踏のノードであれば que.append((j,c+1)) # 自分の値に+1してqueに入れる return visited[-1] ok = 0 ng = 1 << 64 while(True): mid = (ok+ng) // 2 if bfs(mid) != -1: ok = mid else: ng = mid if ng - ok == 1: break print(ok, bfs(ok))