Cod sursa(job #2311482)

Utilizator diaconudanielaDiaconu Daniela diaconudaniela Data 3 ianuarie 2019 12:19:01
Problema Lupul Urias si Rau Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.85 kb
#include <iostream>
#include <fstream>
#include <cmath>
#include <algorithm>
#include <queue>
using namespace std;

ifstream f("lupu.in");
ofstream g("lupu.out");

int cmp(const pair<int,int>&p,const pair<int,int>&q)
{
    return (p.first<q.first);
}
 priority_queue <long long int> oi;


int main()
{
    int n,x,l,i;
    pair<int,int>v[n];
    f>>n>>x>>l;
    for(i=0;i<n;i++)
        f>>v[i].first>>v[i].second;

     sort(v,v+n,cmp);//sortez in functie de distanta-crescator

  long long int s=0, nr_intervale;
  nr_intervale=x/l+1;
int j=0;

  for (int i=nr_intervale; i>=1; i--) {
        while (x-i*l+1 <= v[j].first && v[j].first <= x-(i-1)*l && j<n) {
            oi.push(v[j].second);
            j++;
        }
        if(!oi.empty()){
            s+= oi.top();
            oi.pop();
        }
    }
g<<s;

return 0;
}