Cod sursa(job #423612)

Utilizator TabaraTabara Mihai Tabara Data 24 martie 2010 03:22:34
Problema Gutui Scor 10
Compilator c Status done
Runda teme_upb Marime 0.72 kb
#include <stdio.h>
#include <stdlib.h>

#define NMAX 100005
const char *in = "gutui.in";
const char *out = "gutui.out";

long long N;
long long H, U, Gmax;
long long h[NMAX], g[NMAX], ind[NMAX];

int cmp (const void* a, const void *b)
{
	return h[*(long long*)b] - h[*(long long*)a];
}

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

	scanf ("%lld%lld%lld", &N, &H, &U);
	long long i, j;
	for (i = 0; i < N; ++i) {
		scanf ("%lld%lld", h+i, g+i);
		ind[i] = i;
	}

	qsort (ind, N, sizeof(long long), cmp);

	if (h[ind[0]] <= H) Gmax = g[ind[0]];
	j = 1;

	for ( i = 1; i < N; ++i)
	{
		if (h[ind[i]] + j*U <= H)
		{
			Gmax += g[ind[i]];
			j++;
		}
		else continue;
	}

	printf ("%lld\n", Gmax );

	return 0;
}