Submission #473507

#TimeUsernameProblemLanguageResultExecution timeMemory
473507FgdxxPotatoes and fertilizers (LMIO19_bulves)C++17
30 / 100
541 ms66036 KiB
#include<bits/stdc++.h> using namespace std; int main(){ int n; cin>>n; priority_queue<int, vector<int>, greater<int>> q; for(int i = 0; i < 30*n; i++)q.push(0); long long shift = 0; long long val = 0; for(int i = 0; i < n; i++){ int a, b; cin>>a>>b; long long x1 = q.top(); q.pop(); long long x2 = q.top();//pochodna na x1, x2 0 wiec x1 niepotrzebne shift += a - b; x2 += shift; if(x2 < 0){//w przeciwnym wypadku nic sie nie dzieje val -= x2; } q.push(-shift); q.push(-shift); } //cout<<q.top() + shift<<" "<<val<<"\n\n"; //obliczamy roznice miedzy 0 a tam gdzie znamy val long long diff = 0; long long slope = -1; long long x = q.top()+shift; if(x > 0){ diff = x; }else{ while(x < 0){ q.pop(); slope++; long long newX = min(q.top()+shift, 0ll); diff += slope * (newX - x); x = newX; } } cout<<(val + diff); }

Compilation message (stderr)

bulves.cpp: In function 'int main()':
bulves.cpp:13:13: warning: unused variable 'x1' [-Wunused-variable]
   13 |   long long x1 = q.top(); q.pop(); long long x2 = q.top();//pochodna na x1, x2 0 wiec x1 niepotrzebne
      |             ^~
#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...