Pagini recente » Cod sursa (job #7529) | Cod sursa (job #3161240)
#include <fstream>
using namespace std;
ifstream fin("rucsac.in");
ofstream fout("rucsac.out");
const int MAX_N=5005;
const int MAX_G=10005;
struct t_object{
int greutate,profit;
};
int dp[MAX_N][MAX_G];
int main(){
int nr_elem, gmax;
t_object objs[MAX_N];
fin>>nr_elem>>gmax;
for (int i=1;i<=nr_elem;i++){
int greutate;
int profit;
fin>>greutate>>profit;
t_object obiect={greutate, profit};
objs[i]=obiect;
}
for(int idx=1;idx<=nr_elem;idx++){
for(int g=1;g<=gmax;g++){
t_object obj=objs[idx];
if(obj.greutate>g){
dp[idx][g]=dp[idx-1][g];
}
else{
int profit1=dp[idx-1][g];
int profit2=obj.profit+dp[idx-1][g-obj.greutate];
dp[idx][g]=max(profit1,profit2);
}
}
}
fout<<dp[nr_elem][gmax];
return 0;
}