Cod sursa(job #807864)

Utilizator raulstoinStoin Raul raulstoin Data 5 noiembrie 2012 20:25:05
Problema Lupul Urias si Rau Scor 48
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.74 kb
#include<cstdio>
#include<algorithm>
#include <utility>
#define INF 2147483647
#define dist first
#define profit second
using namespace std;
pair <int,int> oaie[100000];
int n,x,l,s;
int main()
{
	freopen("lupu.in","r",stdin);
	freopen("lupu.out","w",stdout);
	scanf("%d %d %d",&n,&x,&l);
	int i,k,s=0;
	for(i=1;i<=n;i++)
	{
		int a,b;
		scanf("%d %d",&a,&b);
		oaie[i].dist=(x-a)/l+1;
		oaie[i].profit=b;
	}
	sort(oaie+1,oaie+n+1);
	reverse(oaie+1,oaie+n+1);
	k=oaie[1].dist;
	i=1;
	while(k)
	{
		int ind=0,maxim=0;
		for(i=1;i<=n && k<=oaie[i].dist;i++)
		{
			if(maxim<oaie[i].profit)
			{
				maxim=oaie[i].profit;
				ind=i;
			}
		}
		oaie[ind].profit=0;
		k--;
		s+=maxim;
	}
	printf("%d\n",s);
	return 0;
}