Pagini recente » Cod sursa (job #1146983) | Cod sursa (job #2671887) | Cod sursa (job #1417032) | Cod sursa (job #2394014) | Cod sursa (job #1004364)
#include <iostream>
#include <fstream>
#define maxn 5001
#define maxg 10001
using namespace std;
int main()
{
ifstream f("rucsac.in");
ofstream g("rucsac.out");
int n,G;
int w[maxn],p[maxn],din[maxg];
f >> n >> G;
for (int i=0;i<n;i++)
{
f >> w[i] >> p[i];
}
fill(din,din+G+1,-1);
din[0] = 0;
for (int j=0;j<n;j++)
{
for (int i=G;i>=0;i--)
{
if(din[i]>=0 && i+w[j]<=G && din[i]+p[j]>din[i+w[j]])
din[i+w[j]] = din[i] + p[j];
}
}
int max=0;
for (int i=1;i<=G;i++)
if (max < din[i])
max = din[i];
g << max;
return 0;
}