結果

問題 No.2532 Want Play More
ユーザー ああいい
提出日時 2023-11-11 21:38:20
言語 PyPy3
(7.3.15)
結果
AC  
実行時間 614 ms / 2,000 ms
コード長 762 bytes
コンパイル時間 192 ms
コンパイル使用メモリ 82,432 KB
実行使用メモリ 140,396 KB
最終ジャッジ日時 2024-09-26 02:53:49
合計ジャッジ時間 9,633 ms
ジャッジサーバーID
(参考情報)
judge2 / judge1
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 3
other AC * 26
権限があれば一括ダウンロードができます

ソースコード

diff #

N = int(input())
G = [[] for _ in range(N)]
for _ in range(N - 1):
    a,b = map(int,input().split())
    a -= 1
    b -= 1
    G[a].append(b)
    G[b].append(a)

dp = [[0] * 2 for _ in range(N)]

stack = [(0,-1,0)]
while stack:
    now,parent,f = stack.pop()
    if f == 0:
        stack.append((now,parent,1))
        for i in G[now]:
            if i == parent:continue
            stack.append((i,now,0))
        continue

    M = 0
    m = 10 ** 6
    count = 0
    for v in G[now]:
        if v == parent:continue
        count += 1
        if dp[v][1] > M:M = dp[v][1]
        if dp[v][0] < m:m = dp[v][0]
    if count == 0:
        M = 0
        m = 0
    dp[now][0] = M + 1
    dp[now][1] = m + 1
print(dp[0][0] - 1)
print(dp[0][1] - 1)
    
#print(dp)
0