//Alberto Franco 558191
#include <iostream>
using namespace std;
int main()
{
int A[1000];
int n,T;
int a=0;
int b=(-1);
int S=0;
cout << "Dammi una sequenza di al piu' 1000 interi diversi da 0 (se la sequenza e' piu' corta di 1000 segnala la fine della sequenza aggiungendo il valore 0 come sentinella):" << endl;
cin >> A[0];
/*R:n<1000, A[0..n]!=0*/
for(n=1;(n<1000)&&(A[n-1]!=0); n++ ) {
cin >> A[n];
}
/*R: 0<=i<=a<=b<=n S = sum_a-b*/
for(int i=0;i<=n;i++){
T=0;
/*R1: S = sum_a-b >= T = sum_i-c */
for(int c=i;c<=n;c++){
T=T+A[c];
if(T>S){
a=i;
b=c;
S=T;
}
}
}
cout << "Il segmento di array di somma massima e' quello compreso trs i due indici a="<< a <<"e b="<< b <<"ed il valore della somma e':"<< S << endl;
return 0;
}