dưới là phần code của e và đề bài, với độ phức tạp O(n), nhưng kết quả chưa chính xác lắm, e nghĩ hướng đi là đúng,
#include <bits/stdc++.h>
using namespace std;
const int LIM = 60009;
int n;
int a[LIM], s[LIM];
void nhapmang()
{
cin >> n;
a[0] = 0;
s[0] = 0;
for (int i=1; i<=n; i++)
{
cin >> a[i];
s[i] = s[i-1] + a[i];
}
}
void process()
{
int l=0, r=0;
for (int i = 1; i <= n; i++) {
for (int j = 1; j <= i; j++)
if (s[i] > s[j-1]) {
if (r-l < i-j) {
r = i;
l = j;
}
break;
}
}
cout << l << " " << r << endl;
}
int main()
{
//freopen("PS.inp", "r", stdin);
//freopen("PS.out", "w", stdout);
nhapmang();
process();
}