Cod sursa(job #627986)

Utilizator RaulKBaciu Raul RaulK Data 31 octombrie 2011 09:23:50
Problema Problema rucsacului Scor 10
Compilator cpp Status done
Runda Arhiva educationala Marime 0.62 kb
#include<iostream>
#include<fstream>	
using namespace std;
int G,n,x[100],xm[100],pmax,nrob;

struct obiect { int p,g; };
obiect a[100];
void back(int i,int g,int p)
{
	int j,gramas,pramas,k;
	for(j=x[i-1]+1;j<=n;j++)
	{
		x[i]=j;
		gramas=g+a[j].g;
		pramas=p+a[j].p;
		if(gramas<=G)
		{
			if(pmax<pramas)
			{
			pmax=pramas;
			for(k=1;k<=i;k++)
			{
				xm[k]=x[k];
			}
			nrob=i;
			
			}
			
		}
		back(i+1,gramas,pramas);
	}
}
int main()
{
	ifstream f("rucsac.in");
	ofstream co("rucsac.out");
	f>>n>>G;
	int i;
	for(i=1;i<=n;i++)
	{
		f>>a[i].g>>a[i].p;
	}
	back(1,0,0);
	co<<pmax;
}