Submission #782867

#TimeUsernameProblemLanguageResultExecution timeMemory
782867devariaotaThe Xana coup (BOI21_xanadu)C++17
0 / 100
38 ms11204 KiB
#include<bits/stdc++.h> using namespace std; #define ll long long #define fi first #define se second #define endl "\n" #define pii pair<ll,ll> #define pb push_back #define vi vector<ll> #define pque priority_queue #define pqueg priority_queue<ll,vector<ll>,greater<ll>> #define que queue<ll> #define FOR(m,i,n) for(int i=(m); i<=(n); i++) #define FORM(m,i,n) for(int i=(m); i>=(n); i--) ll n,u,v,ans; vector<ll> adj[100100]; bool vis[100100]; ll a[100100]; void dfs(ll x) { vis[x] = true; for(auto i : adj[x]) { if(!vis[i]) { if(a[i] == 1 && i != n-1) { a[i] = 0; a[i+1] = a[i+1] ^ 1 ^ 0; a[i+2] = a[i+2] ^ 1 ^ 0; ans++; } dfs(i); } } } int main() { ios_base::sync_with_stdio(0); cin.tie(0); cin >> n; FOR(1,i,n-1) { cin >> u >> v; adj[u].pb(v); adj[v].pb(u); } FOR(1,i,n) { cin >> a[i]; } adj[0].pb(1); adj[1].pb(0); dfs(0); FOR(1,i,n) { if(a[i] == 1) { cout << "impossible" << endl; return 0; } } cout << ans << endl; } /* 5 1 2 2 3 3 4 4 5 1 0 1 0 1 */
#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...