#include<iostream>#include<cstdio>usingnamespace std;voidmaxSubsequenceWihtBeginAndEnd(int arr[],int n){int dp[n +10];
dp[0]= arr[0];int maximum = dp[0];int left =0, right =0;for(int i =1; i < n; i ++){
dp[i]=max(arr[i], dp[i -1]+ arr[i]);if(dp[i]> maximum){
maximum = dp[i];
right = i;}}int k = maximum;for(int j = right; j >=0; j --){if((k -= arr[j])==0){
left = j;break;}}
cout << maximum <<" "<< arr[left]<<" "<< arr[right]<< endl;}intmain(){int n;while(scanf("%d",&n)!=EOF&& n){int a[n];for(int i =0; i < n; i ++){scanf("%d",&a[i]);}
s.maxSubsequenceWihtBeginAndEnd(a, n);}return0;}