#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
ll inf=1e9+10;
ll n;
bool check(ll x,vector<ll>a)
{
auto b=a;
for(ll i=0;i<n;i++) b[i]-=x;
ll x1=x;
for(ll i=0;i<n-1;i++)
{
if(b[i]>0&&b[i+1]>0)
{
ll mi=min(b[i],b[i+1]);
b[i]-=mi;
b[i+1]-=mi,x-=mi;
}
}
ll cnt=0;
for(ll i=0;i<n;i++) if(b[i]>0)cnt+=b[i];
return x+x1>=cnt;
}
int main()
{
cin>>n;
vector<ll>a(n+10,0);
for(ll i=0;i<n;i++) cin>>a[i];
ll l=0,r=inf;
ll minx=inf;
while(l<r)
{
ll mid=(l+r)/2;
if(check(mid,a)) r=mid,minx=min(minx,mid);
else l=mid+1;
}
cout<<minx;
}