Pagini recente » Cod sursa (job #2168616) | Cod sursa (job #2475273) | Cod sursa (job #2932278)
#include <fstream>
using namespace std;
ifstream cin("rucsac.in");
ofstream cout("rucsac.out");
int n, m, g[5000 + 10], v[5000 + 10], matrice[2+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 = 0; j <= m; j++)
{
matrice[i][j] = matrice[i - 1][j]; //Se considera cazul in care solutia optima se obtine neadaugand obiectul i
if (g[i] <= j) //Se considera cazul in care solutia optima se obtie adaugand obiectul i
matrice[i][j] = max(matrice[i][j], matrice[i - 1][j - g[i]] + v[i]);
}
}
cout << matrice[n][m];
}
int main()
{
citire();
rezolvare();
return 0;
}