Pagini recente » Cod sursa (job #1949189) | Cod sursa (job #1297698) | Cod sursa (job #852469) | Cod sursa (job #3164927) | Cod sursa (job #2869302)
#include<iostream>
#include<fstream>
using namespace std;
int nr_obiecte, greutate_maxima, greutate[10001], profit[10001], dp[2][10001], curent, ant;
int main() {
ifstream f("rucsac.in");
ofstream g("rucsac.out");
f >> nr_obiecte >> greutate_maxima;
for (int i = 1; i <= nr_obiecte; i++)
f >> greutate[i] >> profit[i];
for (int i = 1; i <= nr_obiecte; i++)
{ curent = i % 2;
ant = 1 - curent;
for (int j = 1; j <= greutate_maxima; j++)
if(greutate[i]<=j)
dp[curent][j] = max(dp[ant][j], dp[ant][j - greutate[i]] + profit[i]);
else
dp[curent][j] = dp[ant][j];
}
g<< dp[curent][greutate_maxima];
return 0;
}