Submission #1172391

#TimeUsernameProblemLanguageResultExecution timeMemory
1172391DanielPr8Railway (BOI17_railway)C++20
23 / 100
1095 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}); g[b].pb({a,i}); } ed = vll(n-1); 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+1); } 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...