Pagini recente » Cod sursa (job #521638) | Cod sursa (job #3205997) | Cod sursa (job #1251633) | Cod sursa (job #2152048) | Cod sursa (job #2272787)
#include <iostream>
#include<cstdio>
#define val second
#define i first
#include<algorithm>
#include<queue>
using namespace std;
const int N=100005;
pair<int,int> v[N];
priority_queue<int> h;
long long s;
int main()
{
FILE*fin,*fout;
fin=fopen("lupu.in","r");
fout=fopen("lupu.out","w");
int n,i,x,l;
fscanf(fin,"%d%d%d",&n,&x,&l);
for(i=1;i<=n;i++){
fscanf(fin,"%d%d",&v[i].i,&v[i].val);
v[i].i=(x-v[i].i)/l;
}
sort(v+1,v+n+1);
int val=x/l;
i=n;
while(val>=0){
while(i>0 && v[i].i>=val){
h.push(v[i].val);
i--;
}
s+=(long long)h.top();
h.pop();
val--;
}
fprintf(fout,"%lld",s);
return 0;
}