Pagini recente » Cod sursa (job #784550) | Diferente pentru problema/bigfour intre reviziile 2 si 1 | Cod sursa (job #784598) | Monitorul de evaluare | Cod sursa (job #3133661)
#include <fstream>
#include <vector>
using namespace std;
ifstream cin ("rucsac.in");
ofstream cout ("rucsac.out");
int main ()
{
int obiecte , limita;
cin >> obiecte >> limita;
vector <int> anterior(limita + 1) , actual(limita + 1);
for (int obiect = 1 , greutate , profit ; obiect <= obiecte ; obiect++)
{
cin >> greutate >> profit;
for (int indice = greutate ; indice <= limita ; indice++)
actual[indice] = max(anterior[indice] , anterior[indice - greutate] + profit);
for (int indice = greutate ; indice <= limita ; indice++)
anterior[indice] = actual[indice];
}
cout << actual[limita];
cout.close(); cin.close();
return 0;
}