Cod sursa(job #681164)

Utilizator osiceanu_paulOsiceanu paul osiceanu_paul Data 16 februarie 2012 18:24:25
Problema Problema rucsacului Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.47 kb
#include<stdio.h>
int n,k,v[10000],p[5000],g[5000];

int main()
{
	int i,j,max=0;
	freopen("rucsac.in","r",stdin);
	freopen("rucsac.out","w",stdout);
	scanf("%d %d",&n,&k);
	for(i=1;i<=n;i++)
		scanf("%d %d",&g[i],&p[i]);
	
	for(i=1;i<=k;i++)
		v[i]=-1;
	
	v[0]=0;
	for(i=1;i<=n;i++)
		for(j=k-g[i];j>=0;j--)
			if(v[j]!=-1)
				if(v[j]+p[i]>v[j+g[i]])
					v[j+g[i]]=v[j]+p[i];
								
	for(i=1;i<=k;i++)
		if(max<v[i]) max=v[i];
	printf("%d ",max);
}