Pagini recente » Cod sursa (job #1193958) | Cod sursa (job #2225553) | Cod sursa (job #1764978) | Cod sursa (job #1434836) | Cod sursa (job #1892186)
#include <iostream>
#include <fstream>
using namespace std;
ifstream f("rucsac.in");
ofstream t("rucsac.out");
int g[5001], p[5001], profit[10001];
int main()
{
int n, i , j, k, maxim = 0;
f >> n >> k;
for(i = 1 ; i <= n ; i++)
{
f >> g[i] >> p[i];
}
for(i = 1 ; i <= k ; i++)
{
profit[i] = -1;
}
for(i = 1 ; i <= n ; i++)
{
for(j = k - g[i] ; j >= 0 ; j--)
{
if(profit[j] != -1 && profit[j] + p[i] > profit[j+g[i]])
profit[j+g[i]] = profit[j] + p[i];
}
}
for(i = 1 ; i <= k ; i++)
{
if(maxim < profit[i])
maxim = profit[i];
}
t << maxim;
}