代码如下
#include<bits/stdc++.h>
using namespace std;
#define re register
int ans=0,now,n,w;
int v[105],p[105];
inline void dfs(int price,int sum,int last)
{
if(price>w) return;
if(sum>ans) ans=sum;
for(re int i=last+1;i<=n;i++)
dfs(price+v[i],sum+p[i],i);
}
int main()
{
ios::sync_with_stdio(0);
cin>>n>>w;
for(re int i=1;i<=n;i++)
cin>>v[i]>>p[i];
dfs(0,0,0,1);
cout<<ans<<endl;
return 0;
}