Pagini recente » Cod sursa (job #332819) | Cod sursa (job #2651735) | Cod sursa (job #64515) | Cod sursa (job #1109460) | Cod sursa (job #1507810)
#include <stdio.h>
#include <queue>
#include <vector>
using namespace std;
const int MAX=1000000;
priority_queue<int> pq;
vector<int> v[MAX+1];
long long s=0;
int main()
{
FILE *fin,*fout;
fin=fopen("lupu.in","r");
fout=fopen("lupu.out","w");
int n,x,l;
fscanf(fin,"%d%d%d",&n,&x,&l);
for(int i=1; i<=n; i++)
{
int d,a;
fscanf(fin,"%d%d",&d,&a);
int t=0;
if(d>x)
t=0;
else
t=1+(x-d)/l;
v[t].push_back(a);
}
for(int i=MAX; i>0; i--)
{
if(!v[i].empty())
{
for(int j = 0; j < v[i].size(); j++)
{
pq.push(v[i][j]);
}
}
if(!pq.empty())
{
s+=pq.top();
pq.pop();
}
}
fprintf(fout,"%lld\n",s);
return 0;
}