Cod sursa(job #609872)

Utilizator batistaUPB-Oprea-Cosmin-Dumitru batista Data 23 august 2011 18:00:34
Problema Problema rucsacului Scor 65
Compilator cpp Status done
Runda Arhiva educationala Marime 0.58 kb
#include<fstream>
using namespace std;
int n,gmax;
int c[5002],g[5002];
int cmax[2][5002],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();
}