Submission #669580

#TimeUsernameProblemLanguageResultExecution timeMemory
669580dozerSpring cleaning (CEOI20_cleaning)C++14
28 / 100
1091 ms13048 KiB
#include <bits/stdc++.h> using namespace std; #define fileio() freopen("input.txt", "r", stdin), freopen("output.txt", "w", stdout) #define fastio() cin.tie(0), ios_base::sync_with_stdio(0) #define pb push_back #define sp " " #define endl "\n" #define pii pair<int, int> #define st first #define nd second #define N 100005 vector<int> adj[N]; int val[N], par[N], deg[N]; int ans; int dfs(int node, int root) { int flag = 0; par[node] = root; for (auto i : adj[node]) { if (i != root) flag ^= dfs(i, node); } if (adj[node].size() == 1) flag ^= 1; val[node] = flag; if (flag == 0) val[node] = 2; ans += val[node]; return flag; } int32_t main() { fastio(); int n, q; cin>>n>>q; for (int i = 1; i < n; i++) { int u, v; cin>>u>>v; adj[u].pb(v); adj[v].pb(u); } int flag = dfs(1, 0); for (int i = 1; i <= n; i++) deg[i] = adj[i].size(); ans -= val[1]; //cout<<flag<<sp<<ans<<endl; while(q--) { int d; cin>>d; vector<int> v(d, 0); for (int i = 0; i < d; i++) { int node; cin>>node; if(deg[node] != 1) { flag ^= 1; int curr = node; while(curr != 1) { ans -= val[curr]; val[curr] = 3 - val[curr]; ans += val[curr]; curr = par[curr]; } } deg[node]++; v[i] = node; } if (flag) cout<<-1<<endl; else cout<<ans + d<<endl; for (auto node : v) { deg[node]--; if(deg[node] != 1) { flag ^= 1; int curr = node; while(curr != 1) { ans -= val[curr]; val[curr] = 3 - val[curr]; ans += val[curr]; curr = par[curr]; } } } } cerr<<"time taken : "<<(float)clock() / CLOCKS_PER_SEC<<" seconds\n"; }
#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...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...