Pagini recente » Cod sursa (job #652587) | Cod sursa (job #1087528) | Cod sursa (job #2314535) | Cod sursa (job #1724412) | Cod sursa (job #591071)
Cod sursa(job #591071)
#include<stdio.h>
#include<queue>
#include<algorithm>
using namespace std;
struct pu {
int d,p;
};
priority_queue<int> h;
pu x[100001];
int n,xx,l;
bool cmp(pu a,pu b) {
return a.d<b.d;
}
int main() {
long long i,a1=0,lana=0;
freopen("lupu.in","r",stdin);
freopen("lupu.out","w",stdout);
scanf("%d%d%d",&n,&xx,&l);
for(i=1;i<=n;++i) {
scanf("%d%d",&x[i].d,&x[i].p);
if(x[i].d>xx)
x[i].d=-1;
else
x[i].d=xx/(x[i].d+l);
}
sort(&x[1],&x[n+1],cmp);
for(i=1;i<=n;++i)
{
if(x[i].d>=a1)
{
h.push(-x[i].p); lana+=(long long)x[i].p;
a1++;
}
else
if(!h.empty() && x[i].p>=-h.top() && x[i].d>=a1-1)
{
lana+=(long long)h.top();
lana+=(long long)x[i].p;
h.pop();
h.push(-x[i].p);
}
}
printf("%lld",lana);
return 0;
}