Submission #476577

#TimeUsernameProblemLanguageResultExecution timeMemory
476577idiot123Potatoes and fertilizers (LMIO19_bulves)C++14
100 / 100
204 ms19316 KiB
#include<bits/stdc++.h> using namespace std; int main(){ ios_base::sync_with_stdio(false); cin.tie(0); int N; cin>>N; vector<long long> t(N); for(int i = 0; i < N; i++){ int a, b; cin>>a>>b; t[i] = a - b; } priority_queue<long long, vector<long long>, greater<long long>> q; for(int i = 0; i < N; i++)q.push(0); long long shift = 0; long long val = 0; for(int i = 1; i <= N; i++){ //wywalamy pierwszy punkt q.pop(); //przesuwamy shift += t[i-1]; //pobieramy pozycje pierwszego punktu long long x = q.top() + shift; if(x <= 0){ val += abs(x); } q.push(-shift); q.push(-shift); } long long x = q.top() + shift; long long result; if(x >= 0){ result = val + x; }else{ result = val; int slope = 0; q.pop(); while(q.top() + shift < 0){ result += slope * (q.top() + shift - x); x = q.top() + shift; q.pop(); slope++; } result += -slope * x; } cout<<result; 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...