https://atcoder.jp/contests/abc102/tasks/arc100_b
#include<bits/stdc++.h>
#define int long long
using namespace std;
int a[200005],b[200005];
int n,ans=LLONG_MAX;
signed main()
{
cin>>n;
for(int i=1;i<=n;i++)
cin>>a[i],a[i]+=a[i-1];
int i=1,j=2,k=3;
for(;j<=n-2;j++)
{
while(i<j-1&&(abs(a[j]-a[i]-a[i])>abs(a[j]-a[i+1]-a[i+1])))i++;
while(k<n-1&&(abs(a[n]-a[k]-(a[k]-a[j]))>abs(a[n]-a[k+1]-(a[k+1]-a[j]))))k++;
ans=min(ans,max({a[i],a[j]-a[i],a[k]-a[j],a[n]-a[k]})-min({a[i],a[j]-a[i],a[k]-a[j],a[n]-a[k]}));
}
cout<<ans;