Cod sursa(job #2839792)

Utilizator mihnea.cazan15mihnea cazan mihnea.cazan15 Data 26 ianuarie 2022 16:30:09
Problema Lupul Urias si Rau Scor 84
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.02 kb
#include <fstream>
#include <queue>
#include <algorithm>

using namespace std;
ifstream cin("lupu.in");
ofstream cout("lupu.out");
struct ura
{
    long long t,p;
}v[100005];
bool cmp(ura a,ura b)
{
    return a.t<b.t;
}
priority_queue<long long, vector<long long>, greater<long long> > q;
int main()
{
    long long n,ans=0,x,l,sum=0;
    cin>>n>>x>>l;
    for(int i=1;i<=n;i++)
        {
            cin>>v[i].t>>v[i].p;
            if(v[i].t<=x)
               v[i].t=(x-v[i].t)/l+1;
        }
    sort(v+1,v+n+1,cmp);
    for(int i=1;i<=n;i++)
    {
        //cout<<v[i].t<<" ";
        if(v[i].t<=x)
        {if(v[i].t>q.size())
            q.push(v[i].p);
        else if(v[i].t<=q.size())
        {
            long long  first=q.top();
            ans+=min(v[i].p,first);
            if(v[i].p>first)
            {
                q.pop();
                q.push(v[i].p);
            }
        }}

    }
    for(int i=1;i<=n;i++)
        sum+=v[i].p;
    cout<<sum-ans;
    return 0;
}