Pagini recente » Cod sursa (job #2771298) | Cod sursa (job #2692287) | Cod sursa (job #2316278) | Cod sursa (job #3174945) | Cod sursa (job #2854539)
#include <iostream>
#include <fstream>
using namespace std;
ifstream f("rucsac.in");
ofstream g("rucsac.out");
struct sortate{
int id;
int pret;
int greutate;
int raport;
};
int main()
{
int nrObiecte, capacitateRucsac;
f>>nrObiecte>>capacitateRucsac;
int pret[nrObiecte], greutate[capacitateRucsac];
for(int i=1;i<=nrObiecte;i++){
f>> greutate[i]>>pret[i];
}
int capacitati[nrObiecte][capacitateRucsac];
for(int obiect = 0; obiect < nrObiecte;obiect++ )
for(int weight = 0; weight < capacitateRucsac; weight++)
capacitati[obiect][weight] = 0;
for(int obiect = 1; obiect <= nrObiecte;obiect++ )
for(int weight = 1; weight <= capacitateRucsac; weight++)
if(greutate[obiect] <= weight)
capacitati[obiect][weight] = max(capacitati[obiect-1][weight],
capacitati[obiect-1][weight - greutate[obiect]] + pret[obiect]);
else
capacitati[obiect][weight] = capacitati[obiect-1][weight];
/*
for(int obiect = 0; obiect<= nrObiecte;obiect++ ){
for(int weight = 0; weight <= capacitateRucsac; weight++)
cout<<capacitati[obiect][weight]<<" ";
cout<<endl;
}
*/
g<<capacitati[nrObiecte][capacitateRucsac];
return 0;
}