Pagini recente » Cod sursa (job #2098992) | Cod sursa (job #2879528) | Cod sursa (job #1171626) | Cod sursa (job #2650048) | Cod sursa (job #2912748)
#include <fstream>
#include <algorithm>
#include <queue>
using namespace std;
ifstream fin("lupu.in");
ofstream fout("lupu.out");
long long n,x,l,l2,suma;
struct numar{
int d;
int val;
}v[100005];
priority_queue <int> a;
bool cmp(numar a,numar b)
{
if(a.d != b.d)
return a.d<b.d;
}
int main()
{
fin>>n>>x>>l;
for(int i=1;i<=n;i++){
fin>>v[i].d>>v[i].val;
v[i].d=(x-v[i].d)/l;
}
sort(v+1,v+n+1,cmp);
int t = v[n].d;
while(t>=0)
{
while(n!=0 && v[n].d>=t)
a.push(v[n].val),n--;
if (a.empty()==false)
suma+=a.top(),a.pop();
t--;
}
fout<<suma;
}
/*
0 7
1 13
3 16
3 16
4 3
4 10
4 14
4 18
5 16
6 7
16 18 13 7
*/