#include<stdio.h>
#include<iostream>

typedef long long _L;

int As[210000];
_L Sa[210000];

int N;

void Input()
{
	scanf("%d",&N);
	int wi;
	for(wi=1;wi<=N;++wi)
	{
		scanf("%d",As+wi);
		Sa[wi]=Sa[wi-1]+As[wi];
	}
}

_L max(_L a,_L b){return a>b?a:b;}
_L min(_L a,_L b){return a>b?b:a;}


_L Abs(_L a){return a>0?a:-a;}

void AC()
{
	int wm;
	int pa,pb;
	pa=1;
	pb=3;
	_L Min=0x3FFFFFFFFFFFFLL;
	for(wm=2;wm<N-1;++wm)
	{
		while(Abs(Sa[wm]-Sa[pa]-Sa[pa])>Abs(Sa[wm]-Sa[pa+1]-Sa[pa+1]))
			++pa;
		while(Abs(Sa[N]-Sa[pb]-(Sa[pb]-Sa[wm]))>Abs(Sa[N]-Sa[pb+1]-(Sa[pb+1]-Sa[wm])))
			++pb;
		Min=min(Min,max(max(Sa[wm]-Sa[pa],Sa[pa]),max(Sa[N]-Sa[pb],Sa[pb]-Sa[wm]))-
			min(min(Sa[wm]-Sa[pa],Sa[pa]),min(Sa[N]-Sa[pb],Sa[pb]-Sa[wm])));
	}
	std::cout<<Min;
}

int main()
{
	Input();
	AC();
	return 0;
}
