Pagini recente » Cod sursa (job #2798028) | Cod sursa (job #2231830) | Cod sursa (job #2205062) | Cod sursa (job #3154319) | Cod sursa (job #2311482)
#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;
}