Cod sursa(job #820639)

Utilizator redls_95Nechita Laura redls_95 Data 21 noiembrie 2012 08:41:37
Problema Problema rucsacului Scor 10
Compilator cpp Status done
Runda Arhiva educationala Marime 0.54 kb
#include<cstdio>
using namespace std;
const int N=100;
int g[N],p[N],prf[1000],n,gt;
int main()
{
	freopen("rucsac.in","r",stdin);
	freopen("rucsac.out","w",stdout);
	scanf("%d%d",&n,&gt);
	for(int i=1;i<=n;i++)
	scanf("%d%d",&g[i],&p[i]);
	for(int j=1;j<=gt;j++) prf[j]=-1;
	prf[0]=0;
	for (int i=1;i<=n;i++)
	{
		for(int j=gt-g[i];j>=0;j--)
			if (prf[j]!=-1 && prf[j]+p[i]>prf[j+g[i]])
				prf[j+g[i]]=prf[j]+p[i];
	}
		int max=-1;
		for(int j=1;j<=gt;j++)
			if (prf[j]>max) max=prf[j];
		printf("%d",max);
			return 0;
}