結果
| 問題 |
No.1817 Reversed Edges
|
| コンテスト | |
| ユーザー |
SidewaysOwl
|
| 提出日時 | 2022-01-21 22:40:02 |
| 言語 | PyPy3 (7.3.15) |
| 結果 |
AC
|
| 実行時間 | 357 ms / 2,000 ms |
| コード長 | 741 bytes |
| コンパイル時間 | 171 ms |
| コンパイル使用メモリ | 82,176 KB |
| 実行使用メモリ | 177,920 KB |
| 最終ジャッジ日時 | 2024-11-26 01:43:41 |
| 合計ジャッジ時間 | 7,238 ms |
|
ジャッジサーバーID (参考情報) |
judge1 / judge2 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 2 |
| other | AC * 23 |
ソースコード
import sys
sys.setrecursionlimit(10**7)
n = int(input())
l = [[] for _ in range(n)]
for _ in range(n-1):
a,b = map(int,input().split())
l[a-1].append(b-1)
l[b-1].append(a-1)
vis = [0] * n
vis[0] = 1
cnt = [0] * n
def dfs(node):
for nd in l[node]:
if vis[nd] == 0:
vis[nd] = 1
cnt[node] += dfs(nd) + (node > nd)
return cnt[node]
du = dfs(0)
from collections import deque
ans = [0] * n
ans[0] = cnt[0]
q = deque([[0,cnt[0]]])
vis = [0] * n
vis[0] = 1
while q:
node,cc = q.popleft()
for nd in l[node]:
if vis[nd] == 0:
vis[nd] = 1
ncc = cc + (1 if node < nd else -1)
ans[nd] = ncc
q.append([nd,ncc])
for aa in ans:
print(aa)
SidewaysOwl