#include
#include
using namespace std;
int value[3510], weight[3510];
int dp[13010];
int main()
{
int n, M;
cin >> n;
cin >> M;
for (int i = 1; i <= n; i++) {
cin >> weight[i] >> value[i];
}
for (int i = 1; i <= n; i++) {
for (int j = M; j >= weight[i]; j--) {
dp[j] = max(dp[j], dp[j - weight[i]] + value[i]);
}
}
cout << dp[M];
return 0;
}
最上面数组定义在主函数外面结果运行就是正确的,放在主函数里面也能运行但是结果是错的,为什么呢?