Pagini recente » Cod sursa (job #573069) | Cod sursa (job #303331) | Cod sursa (job #1442345) | Cod sursa (job #3000541) | Cod sursa (job #1823891)
#include <cstdio>
#include <algorithm>
#include <queue>
#define NMax 100000
using namespace std;
priority_queue<int> Q;
pair<int, int> v[NMax+1];
int main(){
freopen("lupu.in","r",stdin);
freopen("lupu.out","w",stdout);
int i,j,N,M,X,L,a,b;
long long ans = 0;
scanf("%d %d %d",&N,&X,&L);
for(M = 0, i = 1; i <= N; ++i)
{
scanf("%d %d",&a,&b);
if(a <= X) v[++M] = make_pair(a,b);
}
N = M;
sort(v+1,v+N+1);
for(a = 1, i = N; i >= 1; ++a)
{
for(j = i; j >= 1 && v[j].first+a*L>X; --j) Q.push( v[j].second );
if( Q.empty() ) Q.push( v[j--].second );
ans = ans + Q.top();
while( !Q.empty() ) Q.pop();
i = j;
}
printf("%lld\n",ans);
return 0;
}