Submission #1244901

#TimeUsernameProblemLanguageResultExecution timeMemory
1244901mountainsaltSpring cleaning (CEOI20_cleaning)C++20
0 / 100
55 ms7496 KiB
#include <bits/stdc++.h> #define int long long using namespace std; const int mod=1e9+7; const int N=1e5+5; int n, q, deg[N]; vector<int> adj[N]; signed main(){ ios_base::sync_with_stdio(false); cin.tie(NULL); cin >> n >> q; for(int i=1; i<n; i++){ int u, v; cin >> u >> v; adj[u].emplace_back(v); adj[v].emplace_back(u); deg[u]++; deg[v]++; } int __=1; while(__++<=q){ multiset<int> ms; ms.emplace(1); ms.emplace(n); int d; cin >> d; for(int i=1; i<=d; i++){ int x; cin >> x; ms.emplace(x); } vector<int> num(ms.begin(),ms.end()); int sz=num.size(); vector<int> real; int ans=0; for(int i=0; i<sz; i++){ int cnt=0; int j=i; while(num[j]==num[i]) cnt++,j++; real.emplace_back(num[i]); if(cnt%2==0) real.emplace_back(num[i]); ans+=(cnt-1)/2; i=j-1; } int szz=real.size(); if(szz%2){ cout << -1 << "\n"; continue; } for(int i=0; i<szz/2; i++){ ans+=real[szz/2+i]+(real[szz/2+i]!=n)-real[i]+(real[i]!=1); } cout << ans << "\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...