Submission #1270524

#TimeUsernameProblemLanguageResultExecution timeMemory
1270524goldencheemsSpring cleaning (CEOI20_cleaning)C++20
9 / 100
35 ms6844 KiB
#pragma GCC optimize("O3")
#include <bits/stdc++.h>
using namespace std;
int t, n, m, x[100001], z, y, q, cnt[100001], a[100001];
vector<int> ke[100001];
int main(){
    ios::sync_with_stdio(0);cin.tie(nullptr);

    cin>>n>>q;
    for(int i=1;i<n;i++){
        cin>>z>>y;
        ke[z].push_back(y);
        ke[y].push_back(z);
    }
    if(q==1){
        for(int i=1;i<=q;i++){
            cin>>m;
            int sola=0;
            for(int i=1;i<=m;i++){
                cin>>x[i];
                cnt[x[i]]++;
            }
            for(int i=1;i<=n;i++){
                if(cnt[i]==0 and ke[i].size()==1)sola++;
                else if(cnt[i]>0)sola+=cnt[i];
            }
            if(sola%2==1)cout<<-1<<"\n";
            else {
                int ans=0;
                for(int i=2;i<=n;i++){
                    if(cnt[i]==0)ans++;
                    else if(cnt[i]%2==0){
                        ans+=cnt[i]-2;
                        ans+=4;
                    }
                    else {
                        ans+=cnt[i]-1;
                        ans+=2;
                    }
                }
                cout<<ans<<"\n";
            }
        }
    }
    else {
        for(int i=1;i<=q;i++){
            cin>>m;
            for(int i=1;i<=m;i++){
                cin>>x[i];
            }
            cout<<"-1\n";
        }
    }
    return 0;
}




#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...