Cod sursa(job #703635)

Utilizator lianaliana tucar liana Data 2 martie 2012 13:21:18
Problema Problema rucsacului Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.49 kb
#include<stdio.h>
#define grmax 10005
long n, gmax, i, g, p, s, pmax[grmax], rez;
bool pos[grmax];

int main()
{
	freopen("rucsac.in","r",stdin);
	freopen("rucsac.out","w",stdout);
	scanf("%ld %ld",&n,&gmax);
	pos[0]=1;
	for (i=1;i<=n;i++)
	{
		scanf("%ld %ld",&g,&p);
		for (s=gmax;s>=g;s--)
			if (((pmax[s]<pmax[s-g]+p)||(pos[s]==0)) && (pos[s-g]))
			{	
				pmax[s]=pmax[s-g]+p;	pos[s]=1;	
				if (pmax[s]>rez)
					rez=pmax[s];
			}
	}
	printf("%ld",rez);
	return 0;
}