Cod sursa(job #152574)

Utilizator gabitzish1Gabriel Bitis gabitzish1 Data 9 martie 2008 16:08:06
Problema Lupul Urias si Rau Scor 16
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.78 kb
#include <stdio.h>
#include <stdlib.h>

int n, h[100002], x, l;
long long suma;

typedef struct
{
	int d, x;
} oaie;
oaie v[100002];

int cmp(const void *a, const void *b)
{
	int x = *(int*)a, y = *(int*)b ;
	return v[y].d - v[x].d;
}

int main()
{
	freopen("lupu.in","r",stdin);
	freopen("lupu.out","w",stdout);

	int i, pas = 1, max, ok;

	scanf("%d %d %d", &n, &x, &l);

	for (i = 0; i < n; i++)
	{
		scanf("%d %d", &v[i].d, &v[i].x);
		h[i] = i;
	}

	qsort(h,n,sizeof(int),cmp);

	i = 0;
	while (1)
	{
		max = 0; ok = 0;
		while (v[h[i]].d > x - (pas * l) && i < n)
		{
			if (max < v[ h[i] ].x) max = v[ h[i] ].x;
			i++;
			ok = 1;
		}
		suma += max;
		pas++;
		if (i >= n || !ok) break;
	}

	printf("%lld\n",suma);
	return 0;
}