Submission #1245682

#TimeUsernameProblemLanguageResultExecution timeMemory
1245682CabralbonzaoPotatoes and fertilizers (LMIO19_bulves)C++20
100 / 100
143 ms8576 KiB
#include<bits/stdc++.h>
using namespace std;
 
mt19937 mt(chrono::steady_clock::now().time_since_epoch().count());
 
#define int long long
#define pb push_back
#define ppb pop_back
#define pf push_front
#define ppf pop_front
#define f first
#define s second
//#define endl '\n'
 
const int N=200010;
const int INF=1000000010;
const int INFLL=1000000000000000010;
const int mod=998244353;

typedef pair<int,int> pii;

int32_t main()
{
    ios_base::sync_with_stdio(0);
    cin.tie(0);
    cout.tie(0);
    
    int n,ans=0;
    
    cin >> n;
    vector<int>d(n);
    for(int i=0;i<n;i++)
    {
        int a,b;
        cin >> a >> b;
        d[i]=a-b+(i ? d[i-1] : 0);
    }
    priority_queue<int>fila;
    for(int i=0;i<n-1;i++)
    {
        if(d[i]<0)
        {
            ans+=abs(d[i]);
            d[i]=0;
        }
        ans+=d[i];
        fila.push(d[i]);
        fila.push(d[i]);
        fila.pop();
    }
    while(!fila.empty())
    {
        ans-=min(fila.top(),d[n-1]);
        fila.pop();
    }
    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...