Pagini recente » Cod sursa (job #1170795) | Cod sursa (job #1579124) | Cod sursa (job #1226) | Cod sursa (job #2135108) | Cod sursa (job #2173596)
#include <iostream>
#include <fstream>
using namespace std;
#define nmax 5005
#define gmax 100005
ifstream f("rucsac.in");
ofstream g("rucsac.out");
int n,gre[nmax],v[nmax],GMax;
int dp[3][gmax];
void read()
{
f>>n>>GMax;
for (int i=1; i<=n; ++i)
f>>gre[i]>>v[i];
}
void solve()
{
for (int i=1; i<=n; ++i)
{
for (int j=0; j<=GMax; ++j)
{
if (gre[i]>j)
dp[1][j]=dp[2][j];
else
dp[1][j]=max(dp[2][j],dp[2][j-gre[i]]+v[i]);
}
for (int hh=0; hh<=GMax; ++hh)
dp[2][hh]=dp[1][hh];
}
g<<dp[1][GMax];
}
int main()
{
read();
solve();
return 0;
}