Submission #201258

#TimeUsernameProblemLanguageResultExecution timeMemory
201258jun6873Fireworks (APIO16_fireworks)C++11
7 / 100
10 ms7672 KiB
#include <bits/stdc++.h> using namespace std; using lint = long long; using pint = pair<int, int>; #define x first #define y second const int maxn = 300004; int N, M; vector<pint> g[maxn]; struct func { priority_queue<lint> neg; priority_queue<lint, vector<lint>, greater<lint> > pos; lint mn = 0; void add(lint x, lint y, lint z) { neg.push(x); pos.push(y); mn += z; while (neg.top() > pos.top()) { lint x = neg.top(), y = pos.top(); neg.pop(); pos.pop(); pos.push(x); neg.push(y); mn += x - y; } } }; func dfs(int x) { func f; for (pint i : g[x]) { int k = i.x, t = i.y; if (k <= N) { func f0 = dfs(k); f.add(f0.neg.top() + t, f0.pos.top() + t, f0.mn); } else f.add(t, t, 0); } return f; } main() { ios::sync_with_stdio(0); cin.tie(0); cin >> N >> M; for (int i=2; i<=N+M; i++) { int x, y; cin >> x >> y; g[x].emplace_back(i, y); } cout << dfs(1).mn << '\n'; }

Compilation message (stderr)

fireworks.cpp:45:6: warning: ISO C++ forbids declaration of 'main' with no type [-Wreturn-type]
 main() {
      ^
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...