Cod sursa(job #611088)

Utilizator elfusFlorin Chirica elfus Data 30 august 2011 17:16:22
Problema Problema rucsacului Scor 10
Compilator cpp Status done
Runda Arhiva educationala Marime 0.5 kb
#include<stdio.h>
#define GMAX 10100
#define INF 10100

int D[GMAX];

int main()
{
	int N, G, i, gnow = 0, w, p;

	freopen("rucsac.in", "r", stdin);
	freopen("rucsac.out", "w", stdout);

	scanf("%d%d", &N, &G);
	for(i = 1; i <= N; i ++)
		D[i] = INF * (-1);

	while(N --)
	{
		scanf("%d%d", &w, &p);
		for(i = gnow; i >= 0; i --)
			if(i + w <= G && D[i + w] < D[i] + p)
				D[i + w] = D[i] + p;
		gnow = gnow + w;
		if(gnow > G)
			gnow = G;
	}

	printf("%d", D[G]);
	return 0;
}