Pagini recente » Cod sursa (job #1441335) | Cod sursa (job #2146005) | Cod sursa (job #2258853) | Cod sursa (job #1630807) | Cod sursa (job #591018)
Cod sursa(job #591018)
#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);
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())
{
lana+=(long long)h.top();
lana+=(long long)x[i].p;
h.pop();
h.push(-x[i].p);
}
}
printf("%lld",lana);
return 0;
}