Cod sursa(job #1426223)

Utilizator patrickdanDan patrick patrickdan Data 29 aprilie 2015 10:12:11
Problema Problema rucsacului Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.59 kb
#include <cstdio>
#include<algorithm>
using namespace std;
const int DMAX=10005;
int d[DMAX];
int main()
{
	freopen("rucsac.in","r",stdin);
	freopen("rucsac.out","w",stdout);
    int n,GMAX,i,g,p,dr,pmax,j;
    scanf("%d%d",&n,&GMAX);
    d[0]=0;
    for(i=1;i<=GMAX;i++)
		d[i]=-1;
	dr=pmax=0;
	for(i=1;i<=n;i++)
	{
		scanf("%d%d",&g,&p);
		for(j=dr;j>=0;j--)
			if(j+g<=GMAX)
				if(d[j]!=-1)
				if(d[j+g]<d[j]+p)
					{
						d[j+g]=d[j]+p;
						if(j+g>dr)
							dr=j+g;
					}
	}
	for(i=1;i<=GMAX;i++)
		if(pmax<d[i])
			pmax=d[i];
	printf("%d",pmax);
    return 0;
}