#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
#define endl '\n'
void solve(){
int n;
cin>>n;
vector<vector<int>> adj(n);
for(int i=0;i<n-1;i++){
int a,b;
cin>>a>>b;
a -- , b --;
adj[a].push_back(b);
adj[b].push_back(a);
}
int mask = 0;
for(int i=0;i<n;i++){
int x;
cin>>x;
if(!x) mask |= (1<<i);
}
queue<int> q;
vector<int> dep((1<<n),-1);
q.push(mask);
dep[mask] = 0;
while(q.size()){
int mask = q.front(); q.pop();
for(int i=0;i<n;i++){
int nmask = mask ^ (1<<i);
for(auto ch : adj[i]) nmask ^= (1<<ch);
if(~dep[nmask]) continue;
q.push(nmask);
dep[nmask] = dep[mask] + 1;
}
}
if(~dep[(1<<n)-1]) cout<<dep[(1<<n)-1]<<endl;
else cout<<"impossible"<<endl;
}
int main(){
ios_base::sync_with_stdio(0);
cin.tie(0); cout.tie(0);
int t=1;
//cin>>t;
while(t--){
solve();
}
return 0;
}
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
5 ms |
860 KB |
Output is correct |
2 |
Correct |
1 ms |
348 KB |
Output is correct |
3 |
Correct |
37 ms |
4928 KB |
Output is correct |
4 |
Correct |
83 ms |
5456 KB |
Output is correct |
5 |
Correct |
35 ms |
4952 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
5 ms |
860 KB |
Output is correct |
2 |
Correct |
1 ms |
348 KB |
Output is correct |
3 |
Correct |
37 ms |
4928 KB |
Output is correct |
4 |
Correct |
83 ms |
5456 KB |
Output is correct |
5 |
Correct |
35 ms |
4952 KB |
Output is correct |
6 |
Correct |
4 ms |
860 KB |
Output is correct |
7 |
Correct |
1 ms |
348 KB |
Output is correct |
8 |
Correct |
42 ms |
4956 KB |
Output is correct |
9 |
Correct |
75 ms |
5364 KB |
Output is correct |
10 |
Correct |
35 ms |
4956 KB |
Output is correct |
11 |
Runtime error |
1 ms |
600 KB |
Execution killed with signal 11 |
12 |
Halted |
0 ms |
0 KB |
- |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Runtime error |
149 ms |
278752 KB |
Execution killed with signal 11 |
2 |
Halted |
0 ms |
0 KB |
- |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Runtime error |
150 ms |
278788 KB |
Execution killed with signal 11 |
2 |
Halted |
0 ms |
0 KB |
- |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
5 ms |
860 KB |
Output is correct |
2 |
Correct |
1 ms |
348 KB |
Output is correct |
3 |
Correct |
37 ms |
4928 KB |
Output is correct |
4 |
Correct |
83 ms |
5456 KB |
Output is correct |
5 |
Correct |
35 ms |
4952 KB |
Output is correct |
6 |
Correct |
4 ms |
860 KB |
Output is correct |
7 |
Correct |
1 ms |
348 KB |
Output is correct |
8 |
Correct |
42 ms |
4956 KB |
Output is correct |
9 |
Correct |
75 ms |
5364 KB |
Output is correct |
10 |
Correct |
35 ms |
4956 KB |
Output is correct |
11 |
Runtime error |
1 ms |
600 KB |
Execution killed with signal 11 |
12 |
Halted |
0 ms |
0 KB |
- |