Cod sursa(job #2500410)

Utilizator Cojocaru_Andrei_CristianCojocaru Andrei Cristian Cojocaru_Andrei_Cristian Data 27 noiembrie 2019 20:40:27
Problema Lupul Urias si Rau Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.98 kb
#include <bits/stdc++.h>

using namespace std;
struct boi
{
    long long poz,cost;
}v[100005];
bool mycmp(boi x,boi y)
{
    return x.poz>y.poz;
}
priority_queue<long long>pq;
int main()
{
    ifstream cin("lupu.in");
    ofstream cout("lupu.out");
    long long n,x,l,a,b,nr=0;
    cin>>n>>x>>l;
    for(long long i=1;i<=n;i++)
    {
       cin>>a>>b;
       if(a<=x)
       {
           v[++nr].poz=((x-a)/l+1);
           v[nr].cost=b;
       }
    }
    sort(v+1,v+nr+1,mycmp);
    long long pas=1,ans=0;
    while(pas<=nr)
    {
        long long temp=v[pas].cost;
        pq.push(temp);
        while(v[pas].poz==v[pas+1].poz)
        {
            pq.push(v[pas+1].cost);
            pas++;
        }
        pas++;
        for(long long j=1;j<=v[pas-1].poz-v[pas].poz;j++)
        {
            if(!pq.empty())
            {

                ans+=pq.top();
                pq.pop();
            }
        }
    }
    cout<<ans;
    return 0;
}