Cod sursa(job #797453)

Utilizator radustn92Radu Stancu radustn92 Data 14 octombrie 2012 01:59:48
Problema Problema rucsacului Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.54 kb
#include <stdio.h>
#define LMAX 10005
#define INF 1000000000
int n,g,best[LMAX],rez;
inline int max(int x,int y)
{
	return x>y ? x : y;
}
int main()
{
	freopen("rucsac.in","r",stdin);
	freopen("rucsac.out","w",stdout);
	scanf("%d%d",&n,&g);
	int i,j,w,p;
	for (i=1; i<=g; i++)
		best[i]=-INF;
	for (i=1; i<=n; i++)
	{
		scanf("%d%d",&w,&p);
		for (j=g; j>=0; j--)
			if (j+w<=g && best[j]!=-INF && best[j+w]<best[j]+p)
				best[j+w]=best[j]+p;
	}
	for (i=0; i<=g; i++)
		rez=max(rez,best[i]);
	printf("%d\n",rez);
	return 0;
}