Pagini recente » Cod sursa (job #2010245) | Cod sursa (job #828591) | Cod sursa (job #1289540) | Cod sursa (job #2488750) | Cod sursa (job #1768306)
#include <iostream>
#include <fstream>
# define val 5001
#define valg 10001
using namespace std;
int dp[2][valg];
int w[val],p[val],N,G;
int max (int a,int b)
{
if (a>b)
return a;
return b;
}
int main()
{
ifstream fin ("rucsac.in");
ofstream fout("rucsac.out");
fin>>N>>G;
for(int i=1; i<=N; i++)
{
fin>>w[i]>>p[i];
}
for(int i=1; i<=N; i++)
{
for(int j=1; j<=G; j++)
{
dp[i%2][j]=dp[(i-1)%2][j];
if(w[i]<=j)
dp[i%2][j]=max(dp[i%2][j],dp[(i-1)%2][j-w[i]]+p[i]);
}
}
fout<<dp[N%2][G];
return 0;
}