Problem:


m 頂点の完全グラフがある．最初，完全グラフの辺には色は塗られていない．すぬけ君は，各 i(1 ≤ i ≤ n) について次の操作を行った: 完全グラフから ai 個の頂点を選び，選ばれた頂点同士を結ぶ辺すべてを色 i でぬる．複数個の色が塗られた辺はなかった．m として考えられる最小値を求めよ．

Constraints

 1 ≤ n ≤ 5

 2 ≤ ai ≤ 109

Input

n
a1
. . .
an

Output

m の最小値を一行に出力せよ．

Sample Input 1

2
3
3

Sample Output 1

5

たとえば，頂点1, 2, 3, 4, 5 からなるグラフがあった場合，次のように色を塗ることができる．

 頂点1, 2, 3 を選びその間を結ぶ辺を色1 でぬる．

 頂点1, 4, 5 を選びその間を結ぶ辺を色2 でぬる．

Sample Input 2

5
2
3
4
5
6

Sample Output 2

12



Sample input:
2
3
3


Sample output:
5

Submission status: Accepted

Solution code:
N = int(input())
A = [int(input()) for i in range(N)]
INF = 10**18
N2 = 2**N
def dfs(i, D):
    if i == N:
        return sum(D)
    b = 1 << i
    a = A[i]
    def sel(j, state, u):
        if j == N2:
            D2 = D[:]
            for e in u:
                D2[e] -= 1
                D2[e | b] += 1
            D2[b] = a - len(u)
            return dfs(i+1, D2)
        r = sel(j+1, state, u)
        if D[j] > 0 and state & j == 0 and len(u) < a:
            u.append(j)
            r = min(r, sel(j+1, state | j, u))
            u.pop()
        return r
    return sel(0, 0, [])
print(dfs(0, [0]*N2))