結果
問題 |
No.1817 Reversed Edges
|
ユーザー |
|
提出日時 | 2022-03-02 19:01:15 |
言語 | PyPy3 (7.3.15) |
結果 |
AC
|
実行時間 | 320 ms / 2,000 ms |
コード長 | 1,010 bytes |
コンパイル時間 | 205 ms |
コンパイル使用メモリ | 81,968 KB |
実行使用メモリ | 95,776 KB |
最終ジャッジ日時 | 2024-07-16 10:19:35 |
合計ジャッジ時間 | 6,792 ms |
ジャッジサーバーID (参考情報) |
judge1 / judge5 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 2 |
other | AC * 23 |
ソースコード
import sys input = sys.stdin.readline from collections import * def bfs1(): global all_add q = deque([0]) dist = [-1]*N dist[0] = 0 while q: v = q.popleft() for nv in G[v]: if dist[nv]==-1: if v<nv: add[nv] += 1 else: all_add += 1 add[nv] -= 1 dist[nv] = dist[v]+1 q.append(nv) def bfs2(): q = deque([0]) dist = [-1]*N dist[0] = 0 while q: v = q.popleft() for nv in G[v]: if dist[nv]==-1: res[nv] = res[v]+add[nv] dist[nv] = dist[v]+1 q.append(nv) N = int(input()) G = [[] for _ in range(N)] for _ in range(N-1): A, B = map(int, input().split()) G[A-1].append(B-1) G[B-1].append(A-1) all_add = 0 add = [0]*N bfs1() res = [0]*N bfs2() for v in range(N): print(res[v]+all_add)