Cod sursa(job #695194)

Utilizator netedu_andreiFII Andrei Netedu netedu_andrei Data 28 februarie 2012 11:04:27
Problema Problema rucsacului Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.52 kb
#include<stdio.h>

long n,gt,i,j,tn,t,v,g,vg[10000],vv[10000],max;
int main()
{
	freopen("rucsac.in","r",stdin);
	freopen("rucsac.out","w",stdout);
	scanf("%ld %ld",&n,&gt);
	for(i=1;i<=n;i++)
	{
		scanf("%ld %ld",&v,&g);
		tn=t;
		for(j=1;j<=tn;j++)
			if(vg[j]+g<gt) 
			{
				if(vv[vg[j]+g]<vv[vg[j]]+v){
				vv[vg[j]+g]=vv[vg[j]+g]+v;
				t++;
				vg[t]=vg[j]+g;
				}
			}
		if(vv[g]<v){
		t++;
		vg[t]=g;
		vv[g]=v;}
	}
	for(i=1;i<=gt;i++)
		if(vv[i]>max) max=vv[i];
	printf("%ld",max);
	return 0;
}