Cod sursa(job #2932252)

Utilizator Daniel_TruscaTrusca Marian-Daniel Daniel_Trusca Data 2 noiembrie 2022 13:09:58
Problema Problema rucsacului Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.68 kb
#include <fstream>
using namespace std;

ifstream cin("rucsac.in");
ofstream cout("rucsac.out");

int n, m, g[5000 + 10], v[5000 + 10], matrice[5000 + 10][10000 + 10];

void citire()
{
	cin >> n >> m;
	for (int i = 1; i <= n; i++)
		cin >> g[i] >> v[i];
}

void rezolvare()
{
	for(int i = 1;i <= n;i++)
		for (int j = 1; j <= m; j++)
		{
			matrice[i][j] = matrice[i][j - 1];	//Se analizeaza cazul in care nu se adauga obiectul i in rucsac
			if (g[i] <= j)	//Daca se poate adauga obiectul i in rucsac
				matrice[i][j] = max(matrice[i - 1][j], matrice[i - 1][j - g[i]] + v[i]);
		}
	cout << matrice[n][m];
}


int main()
{
	citire();
	rezolvare();
	return 0;
}