Pagini recente » Cod sursa (job #835895) | Cod sursa (job #2778488) | Cod sursa (job #2094459) | Cod sursa (job #159895) | Cod sursa (job #2722476)
/**
*/
#include <fstream>
using namespace std;
ifstream fin("rucsac.in");
ofstream fout("rucsac.out");
const int nmax=5005;
const int gmax=10005;
int dp[2][gmax];
int n,G;
struct item
{
int g,p;
}v[nmax];
void read()
{
fin>>n>>G;
for(int i=1;i<=n;i++)
{
fin>>v[i].g>>v[i].p;
}
}
void solve()
{
int sw=1,st=0;
for(int i=1;i<=n;i++)
{
for(int j=0;j<=G;j++)
{
if(v[i].g>j)
{
dp[sw][j]=dp[st][j];
}
else
{
dp[sw][j]=max(dp[st][j],v[i].p+dp[st][j-v[i].g]);
}
}
for(int j=0;j<=G;j++)
{
dp[st][j]=dp[sw][j];
dp[sw][j]=0;
}
}
fout<<dp[st][G];
}
int main()
{
read();
solve();
return 0;
}