Cod sursa(job #1303353)

Utilizator badea_adi1999Badea Adrian Catalin badea_adi1999 Data 27 decembrie 2014 21:15:06
Problema Lupul Urias si Rau Scor 88
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.01 kb
#include <fstream>
#include <cstdio>
#include <algorithm>
#include <queue>
#define nmax 150005
using namespace std;
ifstream f("lupu.in");
FILE *g=fopen("lupu.out","w");
int n,x,l;
long long sol;
struct oaie {int d;int p;};
oaie v[nmax];

priority_queue <int> h;


bool cmp(const oaie &a,const oaie &b)
{return a.d>b.d;}

int main(){

    int i,j;
    f>>n>>x>>l;
    for (i=1;i<=n;i++)
            {v[i].d/=l;
             if (v[i].d>x) {i--;n--;}
                    else {
                        f>>v[i].d>>v[i].p;
                        v[i].d=x-v[i].d;
                        if (l!=0) v[i].d/=l;
                        v[i].d++;
                    }
            }
    sort(v+1,v+n+1,cmp);
    j=v[1].d;
    i=1;
    while (j>=1)
            {while (v[i].d>=j) {h.push(v[i].p);
                                i++;}
             if (!h.empty()) sol+=1LL*h.top();
             h.pop();
             j--;
             }
    fprintf(g,"%lld",sol);
return 0;
}