/*
给定K个整数的序列{ N1, N2, ..., NK },其任意连续子序列可表示为{ Ni, Ni+1, ...,
Nj },其中 1 <= i <= j <= K。最大连续子序列是所有连续子序列中元素和最大的一个,
例如给定序列{ -2, 11, -4, 13, -5, -2 },其最大连续子序列为{ 11, -4, 13 },最大和为20
状态转移方程 dp[i] = max(dp[i - 1] + a[i],a[i])
最长公共子序列 求出最长的起点 和 终点
*/
#include <stdio.h>
int main(){
int i,start,end,maxsum,n,input,sum,sumstart,sumend;
int first,last;
while(scanf("%d",&n), n){
sum = 0;
start = end = 0;
maxsum = -32768;
for(i = 0; i < n; i++){
scanf("%d",&input);
if(i == 0){
first = input;
} else if(i == n - 1){
last = input;
}
if(sum >= 0){
if(i == 0)
start = input;
sum += input;
end = input;
} else {
sum = input;
start = end = input;
}
if( maxsum < sum ){
maxsum = sum;
sumstart = start;
sumend = end;
}
}
if(maxsum >= 0 )
printf("%d %d %d\n",maxsum,sumstart,sumend);
else
printf("%d %d %d\n",0,first,end);
}
return 0;
}