Submission #1172390

#TimeUsernameProblemLanguageResultExecution timeMemory
1172390DanielPr8Railway (BOI17_railway)C++20
0 / 100
1096 ms17628 KiB
#include <bits/stdc++.h> using namespace std; using ll = long long; using vll = vector<ll>; using vvl = vector<vll>; using pll = pair<ll,ll>; using vpl = vector<pll>; using vvp = vector<vpl>; #define f first #define s second #define pb push_back #define all(v) v.begin(),v.end() vll ed, sz; vvp g; void dfs(ll cr, ll pr){ for(pll i:g[cr]){ if(i.f!=pr){ dfs(i.f,cr); sz[cr]+=sz[i.f]; if(sz[i.f]>0){ ed[i.s]++; } } } } int main(){ ios_base::sync_with_stdio(0);cin.tie(NULL); ll n, m, k, a ,b, s; cin >> n >> m >> k; g = vvp(n); for(ll i = 0; i < n-1; ++i){ cin >> a >> b; a--;b--; g[a].pb({b,i+1}); g[b].pb({a,i+1}); } ed = vll(n); for(ll i = 0; i < m; ++i){ sz = vll(n,0); cin >> s; while(s--){ cin >> a;a--; sz[a]=1; } dfs(a,a); } vll ans; for(ll i = 0; i < n-1; ++i){ if(ed[i]>=k)ans.pb(i); } cout << ans.size() << "\n"; for(ll i:ans)cout << i << " "; }
#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...