#include<bits/stdc++.h>
namespace zcy{
using namespace std;
typedef long long ll;
const int MAXN=2e6+6;
int n;
ll a[MAXN];
ll p[MAXN];
ll ceil(ll x,ll y){
return x/y+bool(x%y);
}
ll calc(int A,int B,int C){
ll x=p[B-1]-p[A-1];
ll y=p[C-1]-p[B-1];
ll z=p[A+n-1]-p[C-1];
return max({x,y,z})-min({x,y,z});
}
int main(){
ios::sync_with_stdio(0);
cin.tie(0);
cin>>n;
for(int i=1;i<=n;i++){
cin>>a[i];
a[n+i]=a[i];
p[i]=p[i-1]+a[i];
}
for(int i=1;i<=n*2;i++){
p[i]=p[i-1]+a[i];
}
ll ans=1145141919810LL;
int A=1,B=1,C=1;
for(int l=1;l<=n;l++){
//前面大后面小
ll lev1=p[n]/3+p[l-1];
int x1=upper_bound(p,p+n*2+1,lev1)-p;
ll ned1=lev1+(p[n]-lev1+p[l-1])/2;
int y1=upper_bound(p,p+n*2+1,ned1)-p;
// clog<<"当前选中区间为["<<l<<","<<x1-1<<"],["<<x1<<","<<y1-1<<"],["<<y1<<","<<l+n-1<<"] ";
// clog<<"此时三个区间为"<<p[x1-1]-p[l-1]<<" "<<p[y1-1]-p[x1-1]<<" "<<p[l+n-1]-p[y1-1]<<",calc="<<calc(l,x1,y1)<<"\n";
//区间[l,x1-1],[x1,y1-1],[y1,l+n-1]
if(l%n!=x1%n&&x1%n!=y1%n&&y1%n!=l%n)if(ans>calc(l,x1,y1)){
ans=calc(l,x1,y1);
A=l,B=x1,C=y1;
}
y1--;
if(l%n!=x1%n&&x1%n!=y1%n&&y1%n!=l%n)if(ans>calc(l,x1,y1)){
ans=calc(l,x1,y1);
A=l,B=x1,C=y1;
}
y1++;
y1++;
if(l%n!=x1%n&&x1%n!=y1%n&&y1%n!=l%n)if(ans>calc(l,x1,y1)){
ans=calc(l,x1,y1);
A=l,B=x1,C=y1;
}
//前面小后面大
ll lev2=p[n]/3+p[l-1];
int x2=upper_bound(p,p+n*2+1,lev2)-p;
if(x2>l)x2--;
ll ned2=lev2+(p[n]-lev2+p[l-1])/2;
int y2=upper_bound(p,p+n*2+1,ned2)-p;
// clog<<"当前选中区间为["<<l<<","<<x2-1<<"],["<<x2<<","<<y2-1<<"],["<<y2<<","<<l+n-1<<"] ";
// clog<<"此时三个区间为"<<p[x2-1]-p[l-1]<<" "<<p[y2-1]-p[x2-1]<<" "<<p[l+n-1]-p[y2-1]<<",calc="<<calc(l,x2,y2)<<"\n";
//区间[l,x2-1],[x2,y2-1],[y2,l+n-1]
if(l%n!=x2%n&&x2%n!=y2%n&&y2%n!=l%n)if(ans>calc(l,x2,y2)){
ans=calc(l,x2,y2);
A=l,B=x2,C=y2;
}
y2++;
if(l%n!=x2%n&&x2%n!=y2%n&&y2%n!=l%n)if(ans>calc(l,x2,y2)){
ans=calc(l,x2,y2);
A=l,B=x2,C=y2;
}
y2--;
y2--;
if(l%n!=x2%n&&x2%n!=y2%n&&y2%n!=l%n)if(ans>calc(l,x2,y2)){
ans=calc(l,x2,y2);
A=l,B=x2,C=y2;
}
}
A=(A-1)%n+1;
B=(B-1)%n+1;
C=(C-1)%n+1;
ll arr[3]={A,B,C};
sort(arr,arr+3);
cout<<ans<<"\n"<<arr[0]<<" "<<arr[1]<<" "<<arr[2]<<endl;
return 0;
}
}
int main(){
zcy::main();
return 0;
}