#!/usr/bin/python3 n = int(input()) zadosti = list(map(int, input().split())) assert len(zadosti) == n pos = 0 kles_usek = [] def dalsi(): """Najdi 'ideální žádost'.""" global pos # Rozšiřuj počáteční klesající úsek, dokud se nedojde na konec, # nebo není větší prvek. while pos < len(zadosti) and (not kles_usek or kles_usek[-1] > zadosti[pos]): kles_usek.append(zadosti[pos]) pos += 1 # Odebere 'ideální žádost' z klesajícího úseku a vrátí ji. if kles_usek: return kles_usek.pop() else: return None u1 = 0 u2 = 0 while True: d = dalsi() # Hromada žádostí je prázdná. if d is None: break # Přiřaď žádost úředníkovi, který skončí předchozí žádost dříve. if u1 <= u2: u1 += d else: u2 += d # Vypiš čas, kdy skončí pomalejší z úředníků. print(max(u1, u2))