Submission #1262382

#TimeUsernameProblemLanguageResultExecution timeMemory
1262382EntityPlanttDynamic Diameter (CEOI19_diameter)C++20
24 / 100
5094 ms8296 KiB
#include <bits/stdc++.h> using namespace std; signed main() { ios::sync_with_stdio(0); cin.tie(0); cout.tie(0); int n, q; int64_t w, last = 0; cin >> n >> q >> w; vector<pair<int, int>> g[n]; int edga[n - 1], edgb[n - 1]; int64_t weight[n - 1]; for (int i = 0; i < n - 1; i++) { cin >> edga[i] >> edgb[i] >> weight[i]; g[--edga[i]].push_back({--edgb[i], i}); g[edgb[i]].push_back({edga[i], i}); } const function<pair<int64_t, int>(int, int)> dfs = [&](int u, int p) { pair ans{0LL, u}; for (auto &[v, e] : g[u]) { if (v == p) continue; pair p = dfs(v, u); ans = max(ans, {p.first + weight[e], p.second}); } return ans; }; while (q--) { int d; int64_t e; cin >> d >> e; weight[d = (d + last) % (n - 1)] = e = (e + last) % w; cout << (last = dfs(dfs(0, 0).second, -1).first) << '\n'; } }
#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...