Cod sursa(job #1253956)

Utilizator ade_tomiEnache Adelina ade_tomi Data 1 noiembrie 2014 23:31:52
Problema Lupul Urias si Rau Scor 100
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<long long> heap;
heap h;
struct alabama
{
	long long t,val;
};
alabama v[100003];
bool sortare(alabama e1, alabama e2)
{
	return e1.t>e2.t;
}
long long d,i,n,x,l,smax,a,k;
int main()
{
	freopen("lupu.in","r",stdin);
	freopen("lupu.out","w",stdout);
	scanf("%lld%lld%lld",&n,&x,&l);
	for(i=1;i<=n;i++)
	{
		scanf("%lld%lld",&d,&a);
		d=x-d;
		d=d/l+1;
		v[i].t=d;
		v[i].val=a;
	}
	sort(v+1,v+1+n,sortare);
	i=1;
	k=v[1].t;
	while(k!=0&&i<=n)
	{
		while(i<=n&&v[i].t==k){
			h.push(v[i].val);
			i++;
		}
		if(h.empty()!=true)
		{
			smax+=h.top();
			h.pop();
		}
		k--;
	}



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