Pagini recente » Cod sursa (job #2966020) | Cod sursa (job #641003) | Cod sursa (job #932838) | Cod sursa (job #1911409) | Cod sursa (job #2203816)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("rucsac.in");
ofstream fout("rucsac.out");
int n, G, dp[100000], profit = -1000 ;
struct rucsac{
int g, p;
};
rucsac v[5001];
int main()
{
fin >> n >> G;
for(int i = 1; i <= n; i++)
fin >> v[i].g >> v[i].p;
for(int i = 1; i <= n; i++)
{
for(int j = G; j >= 0; j--)
{
if(dp[j] > 0 && j + v[i].g <= G)
{
dp[j+v[i].g] = max(dp[j] + v[i].p, dp[j+v[i].g]);
}
}
dp[v[i].g] = max(dp[v[i].g], v[i].p);
}
for(int i= 1; i <= G; i++)
{
profit = max(profit, dp[i]);
}
fout << profit;
return 0;
}