Cod sursa(job #823907)

Utilizator alexe.razvanAlexe Razvan alexe.razvan Data 25 noiembrie 2012 18:34:46
Problema Problema rucsacului Scor 25
Compilator cpp Status done
Runda Arhiva educationala Marime 0.74 kb
#include <fstream>

using namespace std;

ifstream intrare("rucsac.in");
ofstream iesire("rucsac.out");

int g[1000], c[1000], gmax;
int n, maxim, cmax[1000], ind;
int uz[1000][1000];

int main()
{
	int i, j, x, k;
	intrare >> n >> gmax;
	for(i = 0; i < n; i++)
		intrare >> g[i] >> c[i];
	for(j = 1; j <= gmax; j++)
	{
		maxim = -1;
		for(i = 0; i < n; i++)
			if (g[i] <= j && uz[j-g[i]][i] == 0)
			{
				x = c[i] + cmax[j-g[i]];
				if (x > maxim)
				{
					cmax[j] = x;
					maxim = x;
					for(k = 0; k < n; k++)
						uz[j][k]=uz[j-g[i]][k];
					uz[j][i] = 1;
				}
			}
	}
	
	maxim = -1;
	
	for(i = 1; i <= gmax; i++)
		if (cmax[i] > maxim)
			maxim = cmax[i];
		
	iesire << maxim << '\n';
	return 0;
}