Cod sursa(job #1323292)

Utilizator DobrinAlexFMI Alex Dobrin getwabbit.com DobrinAlex Data 20 ianuarie 2015 21:58:13
Problema Lupul Urias si Rau Scor 100
Compilator cpp Status done
Runda Teme Pregatire ACM Unibuc 2014, Anul II Marime 1.19 kb
#include<fstream>
#include<algorithm>
#include<queue>
#define dim 100007
 
using namespace std;
 
ifstream f("lupu.in");
ofstream g("lupu.out");
 
 
priority_queue<long long >q;
 
struct pufosenie {
     
    int dist,pufos;
}
v[dim];
 
bool  cmp( pufosenie a , pufosenie  b ) {
     
    return a.dist > b.dist;
}
 
inline int maxim ( int a, int b ) {
     
    if( a > b )
            return a;
     
    return b;
     
}
long long Dezmat;
int N ,X ,L , Maxu;
 
int main (){
     
    f >>N >> X >> L;
     
    Maxu=-10000;
     
    for(int i = 1 ;i <= N ;++i ){
         
        f >> v[i].dist >> v[i].pufos ;
         
        v[i].dist= ( X- v[i].dist )/L;
         
        Maxu= maxim( Maxu, v[i].dist    );
         
    }
     
    sort(v+1 , v+1+N , cmp);
     
    int j = 1;
     
    for(int i=Maxu ; i >=0 ;  --i ){
         
        for(  ;  j<=N && v[j].dist == i  ;  ){
             
            q.push(v[j++].pufos);
             
        }
         
        if( !q.empty() ){
             
            Dezmat+=q.top();
             
            q.pop();
        }
         
    }
     
    g << Dezmat << "\n";
    return 0;
}