Cod sursa(job #658657)

Utilizator cremarencodianaCremarenco Diana cremarencodiana Data 9 ianuarie 2012 11:40:25
Problema Problema rucsacului Scor 35
Compilator cpp Status done
Runda Arhiva educationala Marime 0.56 kb
# include <stdio.h>
int s[1000000],g[5010],p[5010],i,n,gmax;
void solve()
{
	int max, rez, i,j;
	s[0]=max=0;
	for (i=1; i<=n; i++)
	{
		if (g[i]<=gmax)
		for (j=max; j>=0; j--)
			if (s[j+g[i]]<s[j]+p[i])
			{
				s[j+g[i]]=s[j]+p[i];
				if (j+g[i]>max) max=j+g[i];
			}
	}
	rez=0;
	for (i=0; i<=gmax; i++)
		if (rez<s[i]) rez=s[i];
	printf("%d\n",rez);
}
int main()
{
	freopen("rucsac.in","r",stdin);
	freopen("rucsac.out","w",stdout);
	scanf("%d %d\n",&n,&gmax);
	for (i=1; i<=n; i++)
		scanf("%d %d\n",&g[i],&p[i]);
	solve();
	return 0;
}