poj 3624 Charm Bracelet
#include <iostream> //0-1背包
using namespace std;
int dp[20000],weigh[5000],val[5000];
int main()
{
int n,m,i,j;
cin>>n>>m;
for(i=0;i<n;++i)
cin>>weigh[i]>>val[i];
for(i=n-1;i>=0;--i)
for(j=m;j>=weigh[i];--j)
dp[j]=max(dp[j],dp[j-weigh[i]]+val[i]);
cout<<dp[m]<<endl;
return 0;
}