Pagini recente » Cod sursa (job #583064) | Cod sursa (job #41625) | Cod sursa (job #1100769) | Cod sursa (job #890804) | Cod sursa (job #3167533)
#include <fstream>
#include <climits>
using namespace std;
ifstream f("rucsac.in");
ofstream g("rucsac.out");
struct object
{
int val, gr;
}a[5005];
int n, G, dp[10005];
int main()
{
f >> n >> G;
for(int i = 1; i <= n; i ++)
f >> a[i].gr >> a[i].val;
for(int i = 1; i <= G; i ++)
dp[i] = INT_MIN;
for(int j = 1; j <= n; j ++)
for(int i = G; i >= 1; i --)
if(a[j].gr <= i)
dp[i] = max(dp[i], dp[i - a[j].gr] + a[j].val);
int maxi = 0;
for(int i = 1; i <= G; i ++)
maxi = max(maxi, dp[i]);
g << maxi;
return 0;
}