제출 #1159377

#제출 시각아이디문제언어결과실행 시간메모리
1159377Kaztaev_AlisherSpring cleaning (CEOI20_cleaning)C++20
0 / 100
1097 ms9172 KiB
#include <bits/stdc++.h> #define ios ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0) #define file(s) if (fopen(s".in", "r")) freopen(s".in", "r", stdin), freopen(s".out", "w", stdout) #define all(a) a.begin() , a.end() #define F first #define S second using namespace std; using ll = long long; const ll N = 2e5+5 , inf = 2e9 + 7; const ll INF = 1e18 , mod = 1e9+7; int a[N] , b[N] , sz[N]; vector<int> g[N]; void solve(){ int n , q; cin >> n >> q; for(int i = 1; i < n; i++){ cin >> a[i] >> b[i]; } while(q--){ int k; cin >> k; for(int i = 1; i <= n+k; i++) g[i].clear(); for(int i = 1; i < n; i++){ g[a[i]].push_back(b[i]); g[b[i]].push_back(a[i]); } for(int i = 1; i <= k; i++){ int a; cin >> a; g[a].push_back(i+n); g[i+n].push_back(a); } int res = 0; for(int i = 1; i <= n+k; i++) res += (g[i].size() == 1); if(res % 2){ cout << "-1\n"; continue; } int cnt = 0; for(int i = 2; i <= n; i++){ if(sz[i] >= 3) sz[i] %= 2; if(sz[i] == 2) cnt++; } cout << n+k-1+cnt << "\n"; } } /* */ signed main(){ ios; solve(); }
#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...