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();
}
        
      
    


 còn lại thì so sánh con trỏ thôi.


    83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?