#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 time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |