Cod sursa(job #630915)

Utilizator Anamaria20Cotirlea Anamaria Anamaria20 Data 6 noiembrie 2011 18:59:27
Problema Gutui Scor 100
Compilator cpp Status done
Runda teme_upb Marime 0.79 kb
#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;
}