Pagini recente » Cod sursa (job #1268445) | Diferente pentru home intre reviziile 297 si 296 | Cod sursa (job #2840331) | Cod sursa (job #2085367) | Cod sursa (job #1602514)
//problema rucsacului
#include <fstream>
using namespace std;
ifstream cin("rucsac.in");
ofstream cout("rucsac.out");
int nrObiecte, greutateMaxima, rezultat=0;
int greutateObiect[100], pretObiect[100], solutie[100];
int main() {
cin>>nrObiecte>>greutateMaxima;
for(int i=1; i<=nrObiecte; i++) cin>>greutateObiect[i]>>pretObiect[i];
for(int i=1; i<=nrObiecte; i++) {
for(int j=greutateMaxima; j >= 0; j--)
if(j >= greutateObiect[i]) solutie[j] = max(solutie[j], solutie[j-greutateObiect[i]] + pretObiect[i]);
}
for(int i=greutateMaxima; i>=0; i--)
if(solutie[i] > rezultat) rezultat = solutie[i];
cout<<rezultat;
return 0;
}