Cod sursa(job #425389)

Utilizator za_wolfpalianos cristian za_wolf Data 25 martie 2010 18:25:31
Problema Lupul Urias si Rau Scor 28
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.65 kb
//#include "stdafx.h"
#include <set>
#include <algorithm>
#define NMAX 100100
using namespace std;
set < int > heap;
int i,j,n,m,k,l,a,s,b,c;
struct kkt
{
	int X,Y,Z;
} x[NMAX];
int cmpf(kkt a , kkt b)
{
	return (a.Z<b.Z);
}
int main()
{
	freopen("lupu.in","r",stdin);
	freopen("lupu.out","w",stdout);
	scanf("%d%d%d",&n,&k,&l);
	for (i=1;i<=n;i++)
	{
		scanf("%d%d",&x[i].X,&x[i].Y);
		x[i].Z=(k-x[i].X)/l;
	}

	sort(x+1,x+n+1,cmpf);

	m=x[n].Z;
	j=n;
	for (i=m;i>=0;i--)
	{
		while (x[j].Z==i&&j>=1)
		{
			heap.insert(-x[j].Y);
			j--;
		}
		s-=*heap.begin();
		heap.erase(heap.begin());
	}
	printf("%d\n",s);

	return 0;
}