Submission #1235280

#TimeUsernameProblemLanguageResultExecution timeMemory
1235280dssfsuper2Spring cleaning (CEOI20_cleaning)C++20
18 / 100
1100 ms6588 KiB
#include <bits/stdc++.h> using namespace std; vector<vector<int>> adj; signed main(){ int n, q;cin>>n>>q; bool isss1=true; adj.resize(n+1); for(int i = 0;i<n-1;i++){ int a,b;cin>>a>>b; adj[a].push_back(b); adj[b].push_back(a); if(a!=1 && b!=1)isss1=false; } vector<int> values; if(isss1){ vector<int> values; for(int i = 0;i<q;i++){ int di;cin>>di; values.assign(n, 0); for(int i = 0;i<di;i++){ int a;cin>>a; values[a]++; } int localn=n; for(auto thing:values){ if(thing%2==0 && thing>=2)localn++; } int total=di+localn-1; if(localn&1){ cout << total << '\n'; continue; } else{ cout << -1 << '\n'; } } return 0; } for(int i = 0;i<q;i++){ values.assign(n, 0); int di;cin>>di; for(int i = 0;i<di;i++){ int x;cin>>x;values[x-1]++; } int total=n-1; vector<int> ones; for(int i = 0;i<n;i++){ total+=values[i]-(values[i]&1); values[i]=values[i]&1; if(values[i]&1)ones.push_back(i); } if((int)ones.size()%2==1){ cout << -1 << '\n'; continue; } for(int i =0;i<ones.size();i+=2){ total+=ones[i+1]-ones[i]+2; } cout << total << '\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...