제출 #1235280

#제출 시각아이디문제언어결과실행 시간메모리
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...