Submission #1263419

#TimeUsernameProblemLanguageResultExecution timeMemory
1263419rtriThe Xana coup (BOI21_xanadu)C++20
5 / 100
1095 ms6216 KiB
#include <bits/stdc++.h> using namespace std; int n; vector<vector<int>> adj; vector<int> cameras; int main() { cin >> n; adj.resize(n); for (int i = 0; i < n - 1; i++) { int a, b; cin >> a >> b; a--; b--; adj[a].push_back(b); adj[b].push_back(a); } cameras.resize(n); int def = 0; for (int i = 0; i < n; i++) { int a; cin >> a; cameras[i] = a; if (a) def |= 1 << i; } int ans = 1e9; for (int mask = 0; mask < pow(2, n); mask++) { int curr = def; int count = 0; for (int i = 0; i < n; i++) { if (1 & (mask >> i)) { count++; curr ^= 1 << i; for (int u : adj[i]) curr ^= 1 << u; } } if (curr == 0) { ans = min(ans, count); } } if (ans == 1e9) cout << "impossible" << endl; else cout << ans << endl; return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...