#include<iostream>
#include<cmath>
#include<cstdio>
#include<algorithm>
#include<cstring>
using namespace std;
struct Result
{
int num;
int l,r;
Result(int x,int y,int z)
{
num = x;
l = y;
r = z;
}
};
Result ff(int a[],int p,int m,int q)
{
int lma = -1000,rma = -1000;
int lx = m,rx = m + 1;
int sum = 0;
for(int i = m;i >= p;i--){
sum += a[i];
if(sum > lma){
lma = sum;
lx = i;
}
}
sum = 0;
for(int i = m + 1;i <= q;i++){
sum += a[i];
if(sum > rma){
rma = sum;
rx = i;
}
}
return Result(lma + rma,lx,rx);
}
Result f(int a[],int p,int q)
{
if(p >= q){
return Result(a[p],p,p);
}
int m = (p + q ) / 2;
Result r1 = f(a,p,m);//左边最大
Result r2 = f(a,m + 1,q);//右边最大
Result r3 = ff(a,p,m,q);//中间最大
if(r1.num >= r2.num && r1.num >= r3.num){
return r1;
}else if(r2.num >= r1.num && r2.num >= r3.num){
return r2;
}
else{
return r3;
}
}
int main()
{
int a[6] = {2,-1,1};
Result r = f(a,0,2);
cout << r.num << " " << r.l << " " << r.r << endl;
return 0;
}