제출 #1317380

#제출 시각아이디문제언어결과실행 시간메모리
1317380guardianecThe Xana coup (BOI21_xanadu)C++20
5 / 100
1096 ms7252 KiB
#include <bits/stdc++.h>
#define ll long long
using namespace std;

int main() {
    ios_base::sync_with_stdio(0);
    cin.tie(0);

    ll n;
    cin >> n;

    vector<vector<ll>> adj(n);
    for (int i=0; i<n-1; i++){
        ll u,v;
        cin >> u >> v;
        u--; v--;
        adj[u].push_back(v);
        adj[v].push_back(u);
    }

    vector<ll> a(n);
    for (int i=0; i<n; i++){
        cin >> a[i];
    }

    ll res = INT_MAX;

    for (ll mask = 0; mask<(1LL<<n); mask++){
        vector<ll> b = a;
        ll k = 0;
        for (int i=0; i<n; i++){
            if ((mask>>i) & 1){
                k++;
                b[i] = 1-b[i];
                for (auto v : adj[i]) {
                    b[v] = 1-b[v];
                }
            }
        }

        ll da = 1;
        for (int i=0; i<n; i++){
            if (b[i]==1) {
                da = 0;
                break;
            }
        }

        if (da) {
            res = min(res, k);
        }
    }

    if (res==INT_MAX){
        cout << "impossible" << endl;
    } else {
        cout << res << endl;
    }
}
#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...