Pagini recente » Cod sursa (job #1173604) | Cod sursa (job #551188) | Cod sursa (job #456654) | Cod sursa (job #3281958) | Cod sursa (job #630915)
Cod sursa(job #630915)
#include <stdio.h>
#include <algorithm>
#include <queue>
using namespace std;
FILE *f,*s;
int i,j,k,l,m,n,p;
struct gutuie
{
int x;
int y;
};
gutuie v1[100005];
priority_queue <int> h;
int cmp(gutuie a, gutuie b)
{
return a.x<b.x;
}
int main()
{
f=fopen("gutui.in","r");
s=fopen("gutui.out","w");
fscanf(f,"%d %d %d",&m,&n,&p);
for(i=1;i<=m;i++)
fscanf(f,"%d %d",&v1[i].x,&v1[i].y);
sort(v1+1,v1+m+1,cmp);
k=n;
while(k>=v1[1].x) k-=p;
i=1;
j=0;
while(1)
{
if(v1[i].x>k || i>m)
{
if(!h.empty())
{
j+=h.top();
h.pop();
}
k+=p;
if (k>n) break;
}
if (v1[i].x<=k && i<=m)
{
h.push(v1[i].y);
i++;
}
}
fprintf(s,"%d\n",j);
fclose(s);
return 0;
}