#include <iostream>
#include <cstdio>
using namespace std;
// 题意是求最大子序列,用贪心法即可
//有所不同的是也要求最大子序列的两个端点
//题目不难,细节很麻烦,直接存在一个数组里再求解可以避开很多麻烦点
//我这里选择的是边读入边计算,所以多了很多麻烦的判断,以及记录全为负数时两个端点
inline int read()
{
register int x = 0, f = 1;
register char c = getchar();
while(c > '9' || c < '0')
{
if(c == '-') f = -1;
c = getchar();
}
while(c >= '0' && c <= '9')
{
x = (x << 3) + (x << 1) + (c ^ 48);
c = getchar();
}
return x * f;
}
int main()
{
int k, l(0), r(0), fl, fr;
long long sum(0), ans(-1);
bool flag = true;
k = read();
for(int t, tl = 0, i = 0; i < k; i++)
{
t = read(); sum += t;
if(flag) {flag = false; tl = t;}
if(sum > ans)
{
ans = sum;
r = t;
l = tl;
}
if(sum < 0)
{
sum = 0;
flag = true;
}
if(i == 0) fl = t;
if(i == k - 1) fr = t;
}
if(k == 0)
{
printf("0 0 0");
}
else if(ans < 0)
{
printf("0 %d %d", fl, fr);
}
else printf("%d %d %d", ans, l, r);
return 0;
}