結果
問題 |
No.1582 Vertexes vs Edges
|
ユーザー |
![]() |
提出日時 | 2025-03-20 21:14:02 |
言語 | PyPy3 (7.3.15) |
結果 |
AC
|
実行時間 | 224 ms / 2,000 ms |
コード長 | 1,263 bytes |
コンパイル時間 | 169 ms |
コンパイル使用メモリ | 82,380 KB |
実行使用メモリ | 109,008 KB |
最終ジャッジ日時 | 2025-03-20 21:14:56 |
合計ジャッジ時間 | 6,782 ms |
ジャッジサーバーID (参考情報) |
judge3 / judge1 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 36 |
ソースコード
import sys sys.setrecursionlimit(1 << 25) def main(): input = sys.stdin.read().split() n = int(input[0]) edges = [[] for _ in range(n + 1)] index = 1 for _ in range(n - 1): u = int(input[index]) v = int(input[index + 1]) edges[u].append(v) edges[v].append(u) index += 2 from collections import deque parent = [0] * (n + 1) visited = [False] * (n + 1) order = [] stack = [(1, False)] while stack: node, processed = stack.pop() if processed: order.append(node) continue if visited[node]: continue visited[node] = True stack.append((node, True)) for neighbor in reversed(edges[node]): if not visited[neighbor] and neighbor != parent[node]: parent[neighbor] = node stack.append((neighbor, False)) used = [False] * (n + 1) count = 0 for u in order: for v in edges[u]: if v == parent[u] or parent[v] != u: continue if not used[u] and not used[v]: used[u] = True used[v] = True count += 1 print(count) if __name__ == "__main__": main()