結果
| 問題 |
No.1817 Reversed Edges
|
| コンテスト | |
| ユーザー |
wolgnik
|
| 提出日時 | 2022-01-21 22:10:22 |
| 言語 | PyPy3 (7.3.15) |
| 結果 |
AC
|
| 実行時間 | 234 ms / 2,000 ms |
| コード長 | 673 bytes |
| コンパイル時間 | 277 ms |
| コンパイル使用メモリ | 82,432 KB |
| 実行使用メモリ | 106,332 KB |
| 最終ジャッジ日時 | 2024-11-26 00:33:38 |
| 合計ジャッジ時間 | 5,594 ms |
|
ジャッジサーバーID (参考情報) |
judge2 / judge1 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 2 |
| other | AC * 23 |
ソースコード
import sys
input = sys.stdin.readline
N = int(input())
e = [[] for _ in range(N + 1)]
for _ in range(N - 1):
u, v = map(int, input().split())
e[u].append(v)
e[v].append(u)
sm = 0
dp = [0] * (N + 1)
dp2 = [0] * (N + 1)
s = [1]
vis = [0] * (N + 1)
vis[1] = 1
while len(s):
x = s.pop()
for y in e[x]:
if vis[y]: continue
vis[y] = 1
s.append(y)
dp[y] = dp[x]
if x < y: dp[y] += 1
else:
dp2[y] -= 1
sm += 1
dp2[1] += sm
s = [1]
vis = [0] * (N + 1)
vis[1] = 1
while len(s):
x = s.pop()
for y in e[x]:
if vis[y]: continue
vis[y] = 1
s.append(y)
dp2[y] += dp2[x]
for x in range(1, N + 1): print(dp[x] + dp2[x])
wolgnik