Cod sursa(job #613177)

Utilizator GrimpowRadu Andrei Grimpow Data 17 septembrie 2011 17:28:44
Problema Problema rucsacului Scor 80
Compilator cpp Status done
Runda Arhiva educationala Marime 0.58 kb
#include<fstream>
using namespace std;
int n,gmax;
int c[5010],g[5010];
int cmax[2][10010],Pmax;
void citire()
{int i,j;
   ifstream f("rucsac.in");
     f>>n>>gmax;
   for(i=1;i<=n;i++) f>>g[i]>>c[i];
f.close();
}

void rezolvare()
{int s,k=0,i;
  for(i=1;i<=n;i++,k=1-k)
	for(s=0;s<=gmax;s++)
	{
	   cmax[1-k][s]=cmax[k][s];
	   if(g[i]<=s)
		   cmax[1-k][s]=max(cmax[1-k][s], cmax[k][s-g[i]]+c[i]);
	}
 Pmax=cmax[k][gmax];
}

void afisare()
{int k;
  ofstream g("rucsac.out");
   g<<Pmax;
  g.close();
}

int main()
{citire();
 rezolvare();
 afisare();
}