Cod sursa(job #464140)

Utilizator bora_marianBora marian bora_marian Data 18 iunie 2010 22:26:24
Problema Lupul Urias si Rau Scor 20
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.73 kb
#include<fstream>
#include<algorithm>
#include<queue>
using namespace std;
long long n,x,l;
struct nod{
   int dist;
   int lana;};
nod v[1000002];
long long maxim,val,sol;
priority_queue<long long> h;
int  cmp(nod a,nod b);
int main()
{
	freopen("lupu.in","r",stdin);
	freopen("lupu.out","w",stdout);
	scanf("%lld %lld %lld",&n,&x,&l);
	int i;
	for(i=1; i<=n; i++) 
		scanf("%lld %lld",&v[i].dist,&v[i].lana);
	int pp=0;
	sort(v+1,v+n+1,cmp);
	int val;
	for(val=0,i=1;val<=x;val+=l)
	{	
		for(i=i;i<=n &&v[i].dist<=val;i++)
			h.push(v[i].lana);
		if(h.size())
		{
			sol+=h.top();
			h.pop();
		}
	}
	printf("%lld\n",sol);
	return 0;
}
int  cmp(nod a,nod b)
{
	
	if(a.dist>b.dist)
		return 0;
	return 1;
}