Cod sursa(job #1253945)

Utilizator ade_tomiEnache Adelina ade_tomi Data 1 noiembrie 2014 23:19:54
Problema Lupul Urias si Rau Scor 16
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.7 kb
#include<stdio.h>
#include<queue>
#include<algorithm>
using namespace std;
typedef priority_queue<int> heap;
heap h;
struct alabama
{
	int t,val;
};
alabama v[100003];
bool sortare(alabama e1, alabama e2)
{
	return e1.t>e2.t;
}
int d,i,n,x,l,smax,a;
int main()
{
	freopen("lupu.in","r",stdin);
	freopen("lupu.out","w",stdout);
	scanf("%d%d%d",&n,&x,&l);
	for(i=1;i<=n;i++)
	{
		scanf("%d%d",&d,&a);
		d=x-d;
		d=d/l+1;
		v[i].t=d;
		v[i].val=a;
	}
	sort(v+1,v+1+n,sortare);
	h.push(v[1].val);
	v[n+1].t=-1;
	for(i=2;i<=n+1;i++)
	{
			if(v[i].t==v[i-1].t)
				h.push(v[i].val);
			else
			{
				smax+=h.top();
			//	printf("%d ",h.top());
				h.pop();
				h.push(v[i].val);
			}
	}


	printf("%d",smax);
	return 0;
}