为什么十六行的i<m换成i<=m就AC了,他是怎么卡到m的
#include <iostream>
using namespace std;
int n, m, a[30], dp[33334], k, ans;
int main() {
cin >> n;
for(int i = 1; i <= n; i ++) {
cin >> a[i];
for(int j = i; j <= 33333; j ++) {
dp[j] = max(dp[j], dp[j - i] + a[i]);
}
}
cin >> m;
string s;
cin >> s;
s = s + "kkk";
for(int i = 0; i < m; i ++) {
if(s[i] == 'a' && s[i + 1] == 'b' && s[i + 2] == 'c') {
i += 2;
k ++;
}
else {
ans += dp[k];
k = 0;
}
}
cout << ans;
return 0;
}