int dp[30010][30];
int qian[30];
int val[30];
int main()
{
int n, m;
cin >> n >> m;
for (int i = 1; i <= m; ++i)
{
cin >> qian[i] >> val[i];
val[i] = qian[i] * val[i];
}
for (int j = 1; j <= m; ++j)
{
for (int i = 0; i <= n; ++i)
{
if (i >= qian[j])
{
dp[i][j] = max(dp[i][j - 1], dp[i - qian[i]][j-1] + val[j]);
}
else
dp[i][j] = dp[i][j - 1];
}
}
cout << dp[n][m];
return 0;
}
这是我的代码,过不了,请问为什么。