对下面一段代码的含义,目的以及相关变量的解释中,存在错误的是()。
using namespace std;
int N, V, v[1005], w[1005];
int dp[1005];
int main()
{
cin >> V >> N;
for (int i = 1; i <= N; i++)
cin >> v[i] >> w[i];
for (int i = 1; i <= N; i++)
for (int j = V; j >= 0; j--)
if (j >= v[i])
dp[j] = max(dp[j], dp[j - v[i]] + w[i]);
cout << dp[V] << endl;
return 0;
}