各位大佬来看看这个代码有什么问题
#include <bits/stdc++.h>
using namespace std;
int dp[2000][2000];
int main(){
int time[2000] = {0}; // 时间
int value[2000] = {0}; // 价值
memset(dp,0,sizeof(dp));
int t,m = 0; // 最大采药时间和草药数量
cin >> t >> m;
for(int i=1;i<=m;i++){
cin >> time[i] >> value[i];
}
for(int i=1;i<=m;i++){
for(int j=1;j<=2;j++){
if(time[i] > t){
dp[i][j] = dp[i][j-1];
}
else{
dp[i][j] = max(dp[i-1][j],dp[i-1][j-value[i]] + value[i]);
}
}
}
for(int i=0;i<=m;i++){
for(int j=0;j<=2;j++){
cout << dp[i][j] << ' ';
}
cout << endl;
}
return 0;
}