結果
| 問題 | No.1817 Reversed Edges |
| コンテスト | |
| ユーザー |
ntuda
|
| 提出日時 | 2025-06-08 20:48:29 |
| 言語 | PyPy3 (7.3.17) |
| 結果 |
AC
|
| 実行時間 | 265 ms / 2,000 ms |
| + 964µs | |
| コード長 | 807 bytes |
| 記録 | |
| コンパイル時間 | 233 ms |
| コンパイル使用メモリ | 96,496 KB |
| 実行使用メモリ | 184,192 KB |
| 最終ジャッジ日時 | 2026-07-11 06:54:29 |
| 合計ジャッジ時間 | 8,050 ms |
|
ジャッジサーバーID (参考情報) |
judge3_0 / judge2_0 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| 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