AT_kupc2017_f 575
Description
[problemUrl]: https://atcoder.jp/contests/kupc2017/tasks/kupc2017_f
数列 $ s $ に対して、その数列を構成する数を $ 0 $ 個以上取り除き、残った数を元の順番で並べて得られる数列を $ s $ の部分列と呼びます。 たとえば、$ (4,\ 2,\ 1) $ や $ (7,\ 4,\ 3,\ 2,\ 1) $ や $ (空列) $ は $ (7,\ 4,\ 3,\ 2,\ 1) $ の部分列ですが、$ (1,\ 2) $ は $ (7,\ 4,\ 3,\ 2,\ 1) $ の部分列ではありません。
長さ $ n $ の数列 $ s $ について、次の条件を満たす空でない数列 $ a $, $ b $, $ c $ が存在するとき、数列 $ s $ を五七五列であるといいます。
- $ a $, $ b $, $ c $ を連結した数列は $ (1,\ 2,\ ...,\ n) $ の順列である。
- $ min_i(a_i) $ < $ min_i(b_i) $ < $ min_i(c_i) $
- $ Σs_{a_i}\ =\ 5 $
- $ Σs_{b_i}\ =\ 7 $
- $ Σs_{c_i}\ =\ 5 $
たとえば、数列 $ ex=(ex_1,\ ex_2,\ ex_3,\ ex_4)=(5,\ 3,\ 5,\ 4) $ は五七五列ですが、$ (5,\ 5,\ 7) $ は五七五列ではありません。$ ex $ については $ a=(1) $, $ b=(2,\ 4) $, $ c=(3) $ の $ 3 $ つの数列が五七五列の条件を満たします。
項数 $ N $ の数列 $ x=(x_1,\ x_2,\ ...,\ x_N) $ が与えられます。各 $ x_i $ は **$ 2\ \leq\ x_i\ \leq\ 7 $** を満たします。 この数列 $ x $ から、五七五列である部分列を $ 1 $ つずつ取り除くとき、最大でいくつの五七五列を取り除けるか求めてください。
Input Format
入力は以下の形式で標準入力から与えられる。
> $ N $ $ x_1 $ $ x_2 $ $ ... $ $ x_N $
Output Format
取り除ける五七五列の最大個数を $ 1 $ 行で出力せよ。
Explanation/Hint
### 制約
- $ 1\ \leq\ N\ \leq\ 100 $
- $ 2\ \leq\ x_i\ \leq\ 7 $
- $ N $, $ x_i $ は整数である。
### Sample Explanation 1
$ (2,\ 3,\ 5,\ 4,\ 3) $ は五七五列です。$ a=(1,\ 5) $, $ b=(2,\ 4) $, $ c=(3) $ の $ 3 $ つの数列が五七五列の条件を満たします。
### Sample Explanation 2
まず、$ x $ の第 $ 1 $, $ 3 $, $ 5 $, $ 6 $ 項からなる $ (5,\ 2,\ 5,\ 5) $ の五七五列が取り除けます。 $ (5,\ 2,\ 5,\ 5) $ については、例えば $ a=(1) $, $ b=(2,\ 4) $, $ c=(3) $ の $ 3 $ つの数列が五七五列の条件を満たします。 $ x $ から第 $ 1 $, $ 3 $, $ 5 $, $ 6 $ 項を取り除いた残りの列は $ (6,\ 3,\ 5,\ 7,\ 5,\ 3) $ となります。 次に、残りの列の第 $ 3 $, $ 4 $, $ 5 $ 項からなる $ (5,\ 7,\ 5) $ の五七五列が取り除けます。