Pagini recente » Cod sursa (job #2683322) | Cod sursa (job #1286792) | Cod sursa (job #939049) | Cod sursa (job #710719) | Cod sursa (job #1370279)
#include <cstdio>
#define NMAX 5005
#define GMAX 10005
int n,g;
int w[NMAX],p[NMAX];
int dp[2][GMAX];
inline int max(const int a,const int b)
{
return (a>b?a:b);
}
void read()
{
scanf("%d%d",&n,&g);
for(int i=1;i<=n;++i)
scanf("%d%d",&w[i],&p[i]);
}
void solve()
{
for(int i=1;i<=n;++i)
{
for(int j=1;j<=g;++j)
{
dp[1-i%2][j]=dp[i%2][j];
if(j>=w[i])
dp[1-i%2][j]=max(dp[i%2][j],dp[i%2][j-w[i]]+p[i]);
//printf("%d ",dp[1-i%2][j]);
}
//printf("\n");
}
printf("%d\n",dp[1-n%2][g]);
}
int main()
{
freopen("rucsac.in","r",stdin);
freopen("rucsac.out","w",stdout);
read();
solve();
return 0;
}