#!/usr/bin/python3
import sys

n = int(sys.stdin.readline())
spice = [int(x) for x in sys.stdin.readline().split()]
attempted, a, o = set(), 0, max(spice)

def attempt(level, pos):
    left, right = pos, (pos+1)%n
    for i in range(0, n):
        if spice[left] <= level:
            level += spice[left]
            attempted.add(left)
            left = (left - 1 + n) % n
        elif i > 0 and spice[right] <= level:
            level += spice[right]
            attempted.add(right)
            right = (right + 1 + n) % n
        else:
            return False
    return True

def possible(m):
    attempted.clear()
    for i in range(0, n):
        if i not in attempted and attempt(m, i):
            return True
    return False

while a < o:
    m = int((a+o)/2)
    if possible(m):
        o = m
    else:
        a = m+1
print(a)
