結果
問題 |
No.806 木を道に
|
ユーザー |
![]() |
提出日時 | 2020-02-08 21:17:21 |
言語 | Python3 (3.13.1 + numpy 2.2.1 + scipy 1.14.1) |
結果 |
WA
|
実行時間 | - |
コード長 | 656 bytes |
コンパイル時間 | 91 ms |
コンパイル使用メモリ | 12,544 KB |
実行使用メモリ | 34,816 KB |
最終ジャッジ日時 | 2024-10-01 05:23:49 |
合計ジャッジ時間 | 7,994 ms |
ジャッジサーバーID (参考情報) |
judge3 / judge5 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 2 |
other | AC * 9 WA * 18 |
ソースコード
N = int(input()) E = [[] for _ in range(N)] for _ in range(N-1): a,b = map(int, input().split()) E[a-1].append(b-1) E[b-1].append(a-1) from collections import deque def f(s): q = deque([s]) dist = [-1]*N dist[s] = 1 while q: temp = q.pop() for u in E[temp]: if dist[u] >= 0: continue dist[u] = dist[temp]+1 q.append(u) return dist for i in range(N): if len(E[i]) == 1: dist1 = f(i) break num = 0 for i in range(N): if num < dist1[i]: num = dist1[i] idx = i dist2 = f(idx) num = max(num, max(dist2)) print(N-num)