Cod sursa(job #982399)

Utilizator Adrian1997Radulescu Adrian Adrian1997 Data 9 august 2013 10:24:54
Problema Lupul Urias si Rau Scor 72
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.72 kb
#include <algorithm>
#include <fstream>
#include <vector>
#include <queue>
#define Max(a,b) (a>b?a:b)
using namespace std;
ifstream f("lupu.in");
ofstream g("lupu.out");
int n,X,L,t=0,sol,a[10];
vector<pair<int,int> > v;

priority_queue<int,vector<int> > h;

int main(void){
    register int i,j,x,y;

    f>>n>>X>>L;
    for(i=0;i<n;i++){
        f>>x>>y;
        v.push_back(make_pair((X-x)/L+1,y));
        t=Max(t,v[i].first);
    }

    sort(v.begin(),v.end());

    i=n-1;
    for(;t>0;t--){
        while(v[i].first>=t && i>-1){
            h.push(v[i].second);
            i--;
        }
        sol+=h.top();
        h.pop();
    }

    g<<sol;
    f.close();
    g.close();
    return 0;
}