Cod sursa(job #1507810)

Utilizator Vlad_317Vlad Panait Vlad_317 Data 21 octombrie 2015 22:16:01
Problema Lupul Urias si Rau Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.89 kb
#include <stdio.h>
#include <queue>
#include <vector>

using namespace std;
const int MAX=1000000;

priority_queue<int> pq;
vector<int> v[MAX+1];

long long s=0;

int main()
{
    FILE *fin,*fout;

    fin=fopen("lupu.in","r");
    fout=fopen("lupu.out","w");

    int n,x,l;

    fscanf(fin,"%d%d%d",&n,&x,&l);

    for(int i=1; i<=n; i++)
    {
        int d,a;
        fscanf(fin,"%d%d",&d,&a);
        int t=0;
        if(d>x)
            t=0;
        else
            t=1+(x-d)/l;
        v[t].push_back(a);
    }

    for(int i=MAX; i>0; i--)
    {
        if(!v[i].empty())
        {
            for(int j = 0; j < v[i].size(); j++)
            {
                pq.push(v[i][j]);
            }
        }
        if(!pq.empty())
        {
            s+=pq.top();
            pq.pop();
        }
    }

    fprintf(fout,"%lld\n",s);

    return 0;
}