Pagini recente » Rezultate Info Oltenia 2019 Proba Individuala | Cod sursa (job #1226492) | Istoria paginii runda/cartof123/clasament | Cod sursa (job #2424802) | Cod sursa (job #3161236)
#include <fstream>
#include <cmath>
using namespace std;
ifstream fin("rucsac.in");
ofstream fout("rucsac.out");
struct object
{
int weight;
int profit;
};
const int max_n=5005;
const int max_g=10001;
int dp[max_n][max_g];
int main()
{
int nr_elem;
int gmax;
object objs[max_n];
fin>>nr_elem>>gmax;
for(int i=1; i<=nr_elem; i++)
{
int greutate;
int profit1;
fin>>greutate>>profit1;
object obiect= {greutate,profit1};
objs[i]=obiect;
}
for(int idx=1; idx<=nr_elem; idx++)
{
for(int cap=1; cap<=gmax; cap++)
{
object obiect=objs[idx];
if(obiect.weight>cap)
dp[idx][cap]=dp[idx-1][cap];
else
{
int profit1=dp[idx-1][cap];
int profit2=obiect.profit+dp[idx-1][cap-obiect.weight];
dp[idx][cap]=max(profit1,profit2);
}
}
}
fout<<dp[nr_elem][gmax];
return 0;
}