제출 #782853

#제출 시각아이디문제언어결과실행 시간메모리
782853devariaotaThe Xana coup (BOI21_xanadu)C++17
0 / 100
38 ms12620 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) { a[min(n,i+1)] = a[min(n,i+1)] ^ 1 ^ 0; a[min(n,i+2)] = a[min(n,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); } a[0] = -1; FOR(1,i,n) { cin >> a[i]; } dfs(1); FOR(1,i,a[i]) { if(a[i] == 1) { cout << "impossible" << endl; return 0; } } cout << ans << endl; }
#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...