Cod sursa(job #2015094)

Utilizator victoreVictor Popa victore Data 25 august 2017 00:24:07
Problema Lupul Urias si Rau Scor 100
Compilator cpp Status done
Runda Teme Pregatire ACM Unibuc 2014, Anul I Marime 0.75 kb
#include<cstdio>
#include<algorithm>
#include<queue>

using namespace std;

const int nmax=1e5+5;

struct oaie
{
    int dist,lana;
}v[nmax];

priority_queue<int> pq;

inline bool cmp(const oaie a,const oaie b)
{
    return a.dist < b.dist;
}

int main()
{
    freopen("lupu.in","r",stdin);
    freopen("lupu.out","w",stdout);
    int i,j,n,x,l;
    scanf("%d%d%d",&n,&x,&l);
    for(i=1;i<=n;++i)
        scanf("%d%d",&v[i].dist,&v[i].lana);
    sort(v+1,v+n+1,cmp);
    long long sol=0;
    for(j=0,i=1;j<=x;j+=l)
    {
        while(i<=n && v[i].dist <= j)
            pq.push(v[i].lana),++i;
        if(!pq.empty())
        {
            sol+=pq.top();
            pq.pop();
        }
    }
    printf("%lld",sol);
}