Submission #146931

#TimeUsernameProblemLanguageResultExecution timeMemory
146931BruteforcemanPotatoes and fertilizers (LMIO19_bulves)C++11
24 / 100
168 ms11344 KiB
#include "bits/stdc++.h" using namespace std; typedef pair <int, int> pii; int a[1000010], b[1000010]; int main(int argc, char const *argv[]) { ios_base :: sync_with_stdio (false); cin.tie (0); int n; cin >> n; for(int i = 0; i < n; i++) { cin >> a[i] >> b[i]; } priority_queue <pii> P; priority_queue <pii> Q; long long ans = 0; for(int i = 0; i < n; i++) { int cur = a[i]; while(!P.empty() && cur > 0) { int x = P.top().first; int y = P.top().second; P.pop(); long long match = min(cur, y); ans += match * abs(i - x); if(y > match) P.push(pii(x, y - match)); cur -= match; } if(cur > 0) Q.push(pii(i, cur)); cur = b[i]; while(!Q.empty() && cur > 0) { int x = Q.top().first; int y = Q.top().second; Q.pop(); long long match = min(cur, y); ans += match * abs(i - x); if(y > match) Q.push(pii(x, y - match)); cur -= match; } if(cur > 0) P.push(pii(i, cur)); } cout << ans << endl; 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...