Pagini recente » Cod sursa (job #245624) | Cod sursa (job #1303352)
#include <fstream>
#include <cstdio>
#include <algorithm>
#include <queue>
#define nmax 150005
using namespace std;
ifstream f("lupu.in");
FILE *g=fopen("lupu.out","w");
int n,x,l;
long long sol;
struct oaie {int d;int p;};
oaie v[nmax];
priority_queue <int> h;
bool cmp(const oaie &a,const oaie &b)
{return a.d>b.d;}
int main(){
int i,j;
f>>n>>x>>l;
for (i=1;i<=n;i++)
{v[i].d/=l;
if (v[i].d>x) {i--;n--;}
else {
f>>v[i].d>>v[i].p;
v[i].d=x-v[i].d;
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--;
}
fprintf(g,"%lld",sol);
return 0;
}