Cod sursa(job #615163)

Utilizator ProcopliucProcopliuc Adrian Procopliuc Data 8 octombrie 2011 18:55:20
Problema Problema rucsacului Scor 65
Compilator cpp Status done
Runda Arhiva educationala Marime 0.59 kb
# include <fstream>

using namespace std;
#define max(a,b) (a>b? a:b)
ifstream f ("rucsac.in");
ofstream gout ("rucsac.out");
int a[3][10005],g[5005],p[5005],i,j,n,k,q,gr;


int main ()
{
	f>>n>>gr;
	for (i=1;i<=n;i++)
		f>>g[i]>>p[i];
	
	for (k=1;k<=n;k++)
	{
		if (k%2==1)
			{
				i=1;
				q=1;
			}
			else
			{
				i=2;
				q=-1;
			}
		
		for (j=1;j<=gr;j++)
		{
			
			
			if (j>=g[k])
				a[i][j]=max (a[i+q][j-g[k]]+p[k],a[i+q][j]);
				
			else
				a[i][j]=a[i+q][j];
			
		}
	}
		if (n%2)
			gout<<a[1][gr];
		else
			gout<<a[2][gr];
		
		return 0;
}