# include <stdio.h>
/*
边输入边处理
最大子列和
3
-1 0 -2
输出0 0 0
*/
int x=0,y=0;
int xx=0;
int MaxSubseqSum(int n,int num[]){
int nowSum = 0;
int maxSum = -1;
for(int i=0;i<n;i++){
nowSum += num[i];
if(nowSum>maxSum){
maxSum = nowSum;
y=i;
x=xx;
}
if(nowSum < 0){
nowSum = 0;
xx=i+1;
}
}
return maxSum;
}
int main(){
int k;
int num[100000];
scanf("%d",&k);
for(int i=0;i<k;i++){
scanf("%d",&num[i]);
}
int ok = 1;
for(int i=0;i<k;i++){
if(num[i] >= 0){ //这里只要大于等于0就设置ok
ok=0; //因为题目说了只有全部是负数才输出sum=0...
}
}
int max = 0;
if(!ok){
max = MaxSubseqSum(k,num);
}else{
x=0;
y=k-1;
}
printf("%d %d %d\n",max,num[x],num[y]);
return 0;
}
#include <cstdio>
int a[10001];
int main(){
int n, sum = -1, tmp, start, end;
scanf("%d", &n);
for (int i = 0; i < n; i++)
scanf("%d", &a[i]);
for (int i = 0; i < n; i++){
tmp = 0;
for (int j = i; j < n; j++){
tmp += a[j];
if (tmp > sum){
sum = tmp;
start = a[i];
end = a[j];
}
}
}
if (sum < 0){
printf("0 %d %d\n", a[0], a[n-1]);
return 0;
}
printf("%d %d %d\n", sum, start, end);
return 0;
}