제출 #1323917

#제출 시각아이디문제언어결과실행 시간메모리
1323917yc11The Xana coup (BOI21_xanadu)C++20
5 / 100
201 ms6652 KiB
#include<bits/stdc++.h>
#define int long long
using namespace std;
vector<vector<int> > n1;
vector<int> n2;


signed main(){
    ios_base::sync_with_stdio(false);
    cin.tie(0);
    int n;
    cin>>n;
    n1.resize(n);
    n2.resize(n);


    for (int i = 0;i<n-1;i++){
        int a,b;
        cin>>a>>b;
        n1[a-1].push_back(b-1);
        n1[b-1].push_back(a-1);

    }
    for (int i = 0;i<n;i++) cin>>n2[i];
    int ans = 1e9;

    for (int i = 0;i<(1<<n);i++){
        int a = 0;
        bool hi = true;
        for (int j = 0;j<n;j++){
            int x = 0;
            for (int k = 0;k<n1[j].size();k++){
                if (i>>(n1[j][k])&1) x++;
            }
            if (i>>j &1) x++;
            if (x%2!=n2[j]){ hi = false;break;}

        }
        if (hi){
            for (int j = 0;j<n;j++){
                if (i>>j & 1) a++;
            }
            ans = min(ans,a);
        }
    }
    if (ans==1e9) cout<<"impossible";
    else cout<<ans;
    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...