这么水的题目竟然都有人做错,不可思议。
#include<iostream>
using namespace std;
long long weight[3500],value[3500];
long long dp[13000];
long long maxi(long long a,long long b)
{
if(a>b)
return a;
else return b;
}
int main()
{
int n,m,i,j;
cin>>n>>m;
for(i=1;i<=n;i++)
cin>>weight[i]>>value[i];
for(i=0;i<=m;i++)
dp[i]=0;
for(i=1;i<=n;i++)
{
for(j=m;j>=weight[i];j--)
dp[j]=maxi(dp[j],dp[j-weight[i]]+value[i]);
}
cout<<dp[m]<<endl;
return 0;
}