Pagini recente » Cod sursa (job #429037) | Cod sursa (job #1613721) | Cod sursa (job #231024) | Cod sursa (job #3250322) | Cod sursa (job #1389185)
#include <iostream>
#include <cstdio>
#include <algorithm>
#define nmax 100005
using namespace std;
int n,x,len,sum,m;
struct Coord{
int d,b;
};
Coord a[nmax];
inline bool cmp(const Coord A,const Coord B){
if(A.d == B.d) return A.b > B.b;
return A.d > B.d;
}
int main(){
int i;
freopen("lupu.in","r",stdin);
freopen("lupu.out","w",stdout);
scanf("%d%d%d",&n,&x,&len);
for(i=1;i<=n;i++){
scanf("%d%d",&a[i].d,&a[i].b);
}
sort(a+1,a+n+1,cmp);
// for(i=1;i<=n;i++)
// cout<<a[i].d<<' '<<a[i].b<<'\n';
for(i=1;i<=n;i++){
if(a[i].d +len*m<= x && a[i+1].d+len*m<= x && a[i].b > a[i+1].b){sum+=a[i].b;m++;}
else if(a[i].d + len +len*m> x && a[i+1].d+len+len*m<= x && a[i].d <= x){sum+=a[i].b;m++;}
// cout<<sum<<' ';
}
cout<<sum;
return 0;
}