Cod sursa(job #1985301)

Utilizator Matei_IgnutaMatei Ignuta Matei_Ignuta Data 27 mai 2017 13:43:35
Problema Lupul Urias si Rau Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.96 kb
#include <stdio.h>
#include <queue>
#include <algorithm>
using namespace std;

priority_queue <int, vector <int>, greater <int> > h;


struct oaie {int dist, lana;};
bool cmp(oaie a, oaie b)
{
    return a.dist>b.dist;
}
oaie v[100010];
int n, x, l, nr;
long long s;
int main()
{
    freopen("lupu.in", "r", stdin);
    freopen("lupu.out", "w", stdout);
    scanf("%d%d%d", &n, &x, &l);
    for(int i=1; i<=n; i++)
    {
        scanf("%d%d", &v[i].dist, &v[i].lana);
    }
    sort(v+1, v+n+1, cmp);
    for(int i=1; i<=n; i++)
    {
        if(v[i].dist+nr*l<=x)
        {
            h.push(v[i].lana);
            nr++;
        }
        else
        {
            if(!h.empty() and v[i].lana>h.top())
            {
                h.pop();
                h.push(v[i].lana);
            }
        }
    }
    for(int i=1; i<=nr; i++)
    {
        s=s+h.top();
        h.pop();
    }
    printf("%lld ", s);
    return 0;
}