Cod sursa(job #1182337)

Utilizator usermeBogdan Cretu userme Data 6 mai 2014 09:18:21
Problema Lupul Urias si Rau Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.88 kb
#include <cstdio>
#include <queue>
#include <vector>

using namespace std;

FILE*f=fopen("lupu.in","r");
FILE*h=fopen("lupu.out","w");

struct tip{
    int d;
    const bool operator < ( const tip &other )const{
        return d<other.d;
    }
};

vector<int> v[1000001];

priority_queue<tip> q;

long long s=0;

int main(){
    int n,e,l,t=0;
    fscanf(f,"%d%d%d",&n,&l,&e);
    for ( int i=1;i<=n;++i ){
        int x,y;
        fscanf(f,"%d%d",&x,&y);
        if ( l>x ){
            int timp=(l-x)/e;
            v[timp].push_back(y);
            if ( timp>t )
                t=timp;
        }
    }
    for ( int i=t;i>=0;--i ){
        for ( int j=0;j<v[i].size();++j ){
            q.push({v[i][j]});
        }
        if ( q.size()!=0 ){
            s+=q.top().d;
            q.pop();
        }
    }
    fprintf(h,"%lld",s);
    return 0;
}