Submission #747417

#TimeUsernameProblemLanguageResultExecution timeMemory
747417vjudge1Railway (BOI17_railway)C++17
23 / 100
472 ms1748 KiB
#include <bits/stdc++.h> using namespace std; const int MAXN = 10001; int n, m, k, x; vector<pair<int, int>> g[MAXN]; set<int> v; int cnt[MAXN]; int dfs(int u, int p) { int s = 0; s += v.find(u) != v.end(); for (auto [v, idx] : g[u]) { if (v != p) { int f = dfs(v, u); if (f > 0 && f < x) cnt[idx]++; s += f; } } return s; } int main() { ios::sync_with_stdio(0); cin.tie(0); cin >> n >> m >> k; for (int i = 1; i <= n - 1; i++) { int a, b; cin >> a >> b; g[a].push_back({b,i}); g[b].push_back({a,i}); } for (int i = 1; i <= m; i++) { cin >> x; v.clear(); for (int j = 0; j < x; j++) { int f; cin >> f; v.insert(f); } dfs(1, 0); } vector<int> ans; for (int i = 1; i <= n; i++) { if (cnt[i] >= k) ans.push_back(i); } cout << ans.size() << "\n"; for (int i : ans) cout << i << " "; cout << "\n"; return 0; }
#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...