Pagini recente » Cod sursa (job #1219638) | Cod sursa (job #1083971) | Cod sursa (job #3039759) | Cod sursa (job #2123953) | Cod sursa (job #480715)
Cod sursa(job #480715)
#include <cstdio>
#include <queue>
#include <algorithm>
using namespace std;
#define file_in "lupu.in"
#define file_out "lupu.out"
#define ll long long
#define x first
#define y second
#define nmax 101000
pair<ll,ll> p[nmax];
priority_queue<ll> H;
ll n,i,d,l,w,sol=0,j;
void adfile(void){
freopen(file_in,"r",stdin);
freopen(file_out,"w",stdout);
scanf("%lld %lld %lld", &n,&d, &l);
for (i=1;i<=n;++i)
scanf("%lld %lld", &p[i].x, &p[i].y);
fclose(stdin);
return ;
}
int cmp(pair<ll,ll> a, pair<ll,ll> b){
return a.x<b.x;
}
void solve(void){
sort(p+1,p+n+1,cmp);
i=1;
for (w=0;w<=d && i<=n;w+=l)
{
for (j=i;j<=n && p[j].x<=w;++j)
H.push(p[j].y);
i=j;
if (!H.empty())
{
sol+=H.top();
H.pop();
}
}
printf("%lld\n", sol);
}
int main(){
adfile();
solve();
return 0;
}