// Online C++ compiler to run C++ program online
#include <bits/stdc++.h>
using namespace std;
int n_o_l(vector<int> &v, int s, int e, int l) {
if (l <= 1) return 0;
int n = e - s + 1;
int r_i, r_j, i = s, j = s, sum = 0, m = INT_MIN;
while (j < s + l - 1) {
sum += v[j++];
}
sum += v[j];
while (j <= e) {
sum -= v[i++];
sum += v[++j];
if (sum >= m) {
m = max(sum, m);
r_i = i;
r_j = j;
}
}
cout << r_i << " " << r_j << "\n";
cout << m;
}
int main() {
vector<int> v{3, 8, 1, 3, 2, 1, 8, 9, 9};
int n = v.size() - 1;
cout << n_o_l(v, 1, 5, 2);
}
在上面的程序中,我想计算索引 s 和 e 之间大小为 l 的子数组的最大和。我不知道问题是什么,我的编译器显示分段错误