結果
問題 |
No.2205 Lights Out on Christmas Tree
|
ユーザー |
|
提出日時 | 2025-04-21 11:52:48 |
言語 | C++23 (gcc 13.3.0 + boost 1.87.0) |
結果 |
AC
|
実行時間 | 95 ms / 2,000 ms |
コード長 | 647 bytes |
コンパイル時間 | 3,829 ms |
コンパイル使用メモリ | 281,012 KB |
実行使用メモリ | 26,716 KB |
最終ジャッジ日時 | 2025-04-21 11:52:58 |
合計ジャッジ時間 | 9,242 ms |
ジャッジサーバーID (参考情報) |
judge2 / judge5 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 37 |
ソースコード
#include <bits/stdc++.h> using namespace std; using ll = long long; int main() { ios::sync_with_stdio(false); cin.tie(nullptr); ll N; cin >> N; vector<vector<ll>> g(N); for(ll i = 0, a, b; i < N - 1; i++) { cin >> a >> b; a--, b--; g[a].emplace_back(b); g[b].emplace_back(a); } vector<ll> C(N); for(auto &i : C) { cin >> i; } vector<ll> p(N, -1); ll ans = 0; auto DFS = [&](auto &&DFS, ll v) -> bool { for(auto &nv : g[v]) { if(nv == p[v]) { continue; } p[nv] = v; C[v] ^= DFS(DFS, nv); } ans += !C[v]; return !C[v]; }; cout << (DFS(DFS, 0) ? -1 : ans) << "\n"; }