結果

問題 No.2205 Lights Out on Christmas Tree
コンテスト
ユーザー koheijkt
提出日時 2026-01-17 15:10:49
言語 PyPy3
(7.3.17)
結果
AC  
実行時間 426 ms / 2,000 ms
コード長 683 bytes
記録
記録タグの例:
初AC ショートコード 純ショートコード 純主流ショートコード 最速実行時間
コンパイル時間 398 ms
コンパイル使用メモリ 82,488 KB
実行使用メモリ 203,712 KB
最終ジャッジ日時 2026-01-17 15:11:04
合計ジャッジ時間 14,786 ms
ジャッジサーバーID
(参考情報)
judge1 / judge2
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 3
other AC * 37
権限があれば一括ダウンロードができます

ソースコード

diff #
raw source code

N = int(input())
jisu = [0] * N
G = [set() for _ in range(N)]
for i in range(N - 1):
    u, v = map(int, input().split())
    u -= 1
    v -= 1
    G[u].add(v)
    G[v].add(u)
    jisu[u] += 1
    jisu[v] += 1
C = list(map(int, input().split()))

jisu1 = []
for i in range(N):
    if jisu[i] == 1:
        jisu1.append(i)

ans = 0
while len(jisu1) > 1:
    pos = jisu1.pop()

    jisu[pos] -= 1
    nex = G[pos].pop()
    G[nex].remove(pos)
    jisu[nex] -= 1
    if jisu[nex] == 1:
        jisu1.append(nex)

    # 色変える判断
    if C[pos] == 0:
        ans += 1
        C[nex] ^= 1

pos = jisu1.pop() # 最後の頂点
if C[pos] == 1:
    print(ans)
else:
    print(-1)    
0