Description:
Accept:
#include<bits/stdc++.h>
using namespace std;
int w[1100], v[1100], n, b;
int dp[11000];
int dpBag(int S)
{
int& ans = dp[S];
if(ans >= 0)
return ans;
ans = 0;
for(int i = 0; i < n; i++)
{
if(S >= w[i])
ans = max(ans, dpBag(S - w[i]) + v[i]);
}
return ans;
}
int main()
{
memset(dp, -1, sizeof(dp));
cin>>n>>b;
for(int i=0;i<n;i++)cin>>w[i]>>v[i];
printf("%d\n", dpBag(b));
return 0;
}