Submission #1156704

#TimeUsernameProblemLanguageResultExecution timeMemory
1156704daoquanglinh2007Fireworks (APIO16_fireworks)C++20
7 / 100
3 ms7492 KiB
#include <bits/stdc++.h> using namespace std; #define int long long #define pii pair <int, int> #define fi first #define se second #define mp make_pair #define isz(a) (int)(a).size() const int NM = 3e5; int N, M; vector <pii> adj[NM+5]; pii dfs(int u, int p){ vector <int> arr = {}; int res = 0; for (pii _ : adj[u]){ int v = _.fi, c = _.se; if (v == p) continue; pii tmp = dfs(v, u); res += tmp.fi; arr.push_back(tmp.se+c); } if (arr.empty()) return mp(0, 0); sort(arr.begin(), arr.end()); int t = (isz(arr)-1)/2; for (int x : arr) res += abs(x-arr[t]); return mp(res, arr[t]); } signed main(){ ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); cin >> N >> M; for (int i = 2; i <= N+M; i++){ int p, c; cin >> p >> c; adj[i].push_back(mp(p, c)); adj[p].push_back(mp(i, c)); } cout << dfs(1, -1).fi; 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...