Pagini recente » Cod sursa (job #1349548) | Cod sursa (job #2715745) | Cod sursa (job #831439) | Cod sursa (job #108085) | Cod sursa (job #1693374)
#include <fstream>
#include <cstdio>
#include <algorithm>
#include <queue>
#define nmax 100005
using namespace std;
long long sol;
int n,x,l;
struct oaie {int d;
int p;} v[nmax];
priority_queue <int> h;
bool cmp(const oaie &a,const oaie &b)
{
return a.d>b.d;
}
int main()
{
freopen("lupu.in","r",stdin);
freopen("lupu.out","w",stdout);
int i,j;
scanf("%d %d %d",&n,&x,&l);
for (i=1;i<=n;i++) {
if (v[i].d>x) {
i--;
n--;
}
else {
scanf("%d %d",&v[i].d,&v[i].p);
v[i].d=x-v[i].d;
if (l)
v[i].d/=l;
v[i].d++;
}
}
sort(v+1,v+n+1,cmp);
j=v[1].d;
i=1;
while (j>=1) {
while (v[i].d>=j) {
h.push(v[i].p);
i++;
}
if (!h.empty()) {
sol+=1LL*h.top();
h.pop();
}
j--;
}
printf("%lld",sol);
return 0;
}