結果
| 問題 |
No.1817 Reversed Edges
|
| コンテスト | |
| ユーザー |
ntuda
|
| 提出日時 | 2025-06-08 20:48:29 |
| 言語 | PyPy3 (7.3.15) |
| 結果 |
AC
|
| 実行時間 | 321 ms / 2,000 ms |
| コード長 | 807 bytes |
| コンパイル時間 | 585 ms |
| コンパイル使用メモリ | 82,408 KB |
| 実行使用メモリ | 175,368 KB |
| 最終ジャッジ日時 | 2025-06-08 20:48:40 |
| 合計ジャッジ時間 | 8,128 ms |
|
ジャッジサーバーID (参考情報) |
judge5 / judge3 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 2 |
| other | AC * 23 |
ソースコード
import sys
sys.setrecursionlimit(100050)
N = int(input())
AB = [list(map(int,input().split())) for _ in range(N-1)]
E = [[] for _ in range(N)]
P1 = [0] * N
for a, b in AB:
a -= 1
b -= 1
E[a].append(b)
E[b].append(a)
def dfs(x,p= -1):
ret = 0
for y in E[x]:
if y != p:
ret += dfs(y,x)
if y < x:
ret += 1
P1[x] = ret
return ret
dfs(0)
P2 = [0] * N
P2[0] = P1[0]
Q = [0]
Q2 = []
nv = [1] * N
nv[0] = 1
while Q:
while Q:
x = Q.pop()
for y in E[x]:
if nv[y]:
nv[y] = 0
Q2.append(y)
P2[y] = P2[x]
if x < y:
P2[y] += 1
else:
P2[y] -= 1
Q,Q2 = Q2,Q
for p in P2:
print(p)
ntuda