Cod sursa(job #1795684)

Utilizator nnnmmmcioltan alex nnnmmm Data 2 noiembrie 2016 19:47:00
Problema Lupul Urias si Rau Scor 100
Compilator cpp Status done
Runda cerculdeinfo-lectia5-paduri.heap.aib Marime 0.72 kb
#include<cstdio>
#include<algorithm>
#include<queue>

const int NMAX=100001;

std::pair<long long,long long> v[NMAX];

std::priority_queue<long long> heap;

int main()
{
 FILE *in=fopen("lupu.in","r");
 int n,x,l;
 fscanf(in,"%d %d %d ",&n,&x,&l);
 for(int i=1;i<=n;i++)
     {
      fscanf(in,"%lld %lld ",&v[i].first,&v[i].second);
     }
 fclose(in);
 std::sort(v+1,v+n+1);
 int poz=1;
 long long rasp=0ll;
 for(int i=0;i<=x;i+=l)
     {
      while(v[poz].first<=i && poz<=n)
            heap.push(v[poz++].second);
      if(!heap.empty())
         {
          rasp+=heap.top();
          heap.pop();
         }
     }
 FILE *out=fopen("lupu.out","w");
 fprintf(out,"%lld\n",rasp);
 fclose(out);
}