Cod sursa(job #423611)

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

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

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

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

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

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

	qsort (ind, N, sizeof(int), 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 ("%d\n", Gmax );

	return 0;
}