Pagini recente » Cod sursa (job #1967535) | Cod sursa (job #2326969) | Cod sursa (job #1340947) | Cod sursa (job #2174233) | Cod sursa (job #2684493)
#include <iostream>
#include <fstream>
using namespace std;
struct ghiozdan{
int greutate;
int profit;
};
ifstream in("rucsac.in");
ofstream out("rucsac.out");
int main()
{
int dp[10005]={0};
int nr_ghiozdane,greutate_maxima;
ghiozdan ghiozdane[5005];
in>>nr_ghiozdane>>greutate_maxima;
for(int i=0;i<nr_ghiozdane;i++)
{
in>>ghiozdane[i].greutate>>ghiozdane[i].profit;
}
for(int i=0;i<nr_ghiozdane;i++)
{
for(int j=10000-ghiozdane[i].greutate;j>=0;j--)
{
if(dp[j+ghiozdane[i].greutate]<dp[j]+ghiozdane[i].profit)
dp[j+ghiozdane[i].greutate]=dp[j]+ghiozdane[i].profit;
}
}
int profit_maxim=0;
for(int i=0;i<=greutate_maxima;i++)
{
profit_maxim=max(profit_maxim,dp[i]);
}
out<<profit_maxim;
return 0;
}