Cod sursa(job #981292)

Utilizator Adrian1997Radulescu Adrian Adrian1997 Data 6 august 2013 17:36:00
Problema Lupul Urias si Rau Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.68 kb
#include <fstream>
#include <queue>
using namespace std;
ifstream f("lupu.in");
ofstream g("lupu.out");
int n,X,L,t,maxim=0;
long long sol;

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

int main(void){
    register int i,j,d,a;
    pair<int,int> p;

    f>>n>>X>>L;
    for(i=1;i<=n;i++){
        f>>d>>a;
        if(d>X)
            continue;
        h.push(make_pair(a,(X-d)/L+1));
        maxim=((X-d)/L+1>maxim?(X-d)/L+1:maxim);
    }


    for(t=1;t<=maxim;t++){
        p=h.top();
        while(p.second<t){
            h.pop();
            p=h.top();
        }
        sol+=p.first;
        h.pop();
    }

    g<<sol;
    return 0;
}