Submission #1286564

#TimeUsernameProblemLanguageResultExecution timeMemory
1286564wedonttalkanymoreRailway (BOI17_railway)C++20
0 / 100
94 ms44664 KiB
#include <bits/stdc++.h> /* Phia ben kia dai duong cung chi co Bo cat nang niu bien thoi */ using namespace std; using ll = long long; #define int long long #define pii pair<ll, ll> #define fi first #define se second const ll N = 2e5 + 5, inf = 1e18, mod = 1e9 + 7, block = 320, lim = 19; int n, m, k; vector <pii> adj[N]; int sum[N]; vector <int> pre[N]; map <int, int> mp[N]; vector <int> res; void dfs(int u, int par) { for (auto [v, id] : adj[u]) { if (v != par) { dfs(v, u); } } for (auto [v, id] : adj[u]) { if (v != par) { if (mp[v].size() >= k) res.push_back(id); if (mp[u].size() < mp[v].size()) mp[u].swap(mp[v]); for (auto [x, val] : mp[v]) { mp[u][x] += val; if (mp[u][x] == sum[x]) mp[u].erase(x); } } } for (auto x : pre[u]) { mp[u][x]++; if (mp[u][x] == sum[x]) mp[u].erase(x); } } signed main() { ios::sync_with_stdio(false); cin.tie(0); if (fopen(".inp", "r")) { freopen(".inp", "r", stdin); freopen(".out", "w", stdout); } cin >> n >> m >> k; for (int i = 1; i < n; i++) { int u, v; cin >> u >> v; adj[u].emplace_back(v, i); adj[v].emplace_back(u, i); } for (int i = 1; i <= m; i++) { int x; cin >> x; sum[i] = x; for (int j = 1; j <= x; j++) { int tt; cin >> tt; pre[tt].push_back(i); } } dfs(1, 0); cout << res.size() << '\n'; for (auto x : res) cout << x << ' '; return 0; }

Compilation message (stderr)

railway.cpp: In function 'int main()':
railway.cpp:49:16: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   49 |         freopen(".inp", "r", stdin);
      |         ~~~~~~~^~~~~~~~~~~~~~~~~~~~
railway.cpp:50:16: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   50 |         freopen(".out", "w", stdout);
      |         ~~~~~~~^~~~~~~~~~~~~~~~~~~~~
#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...