#include using namespace std; void maxSubseq(int A[], int n, int &i, int &j) { // This complexity is O(n) if (n==0) {i= 0; j= 0;} else { int m= A[0]; i= 0; j= 0; int r= 0; int c= 1; while (c < n) { if (m + r + A[c] < A[c]) {i= c; j= c; m= A[c]; r= 0;} else if (m < m + r + A[c]) {j= c; m= m+r+A[c]; r= 0;} else {r= r+A[c];} c++; } } } int main () { int A[11]= {2, -3, 5, -1, -1, 4, 2, -2, 9, -1, 1}; int i; int j; maxSubseq(A, 11, i, j); cout << "Subsequence starts at " << i << " and ends at " << j << endl; }