AT_yahoo_procon2018_final_d LCP(prefix,suffix)

Description

[problemUrl]: https://atcoder.jp/contests/yahoo-procon2018-final/tasks/yahoo_procon2018_final_d 長さ $ N $ の非負整数からなる数列 $ l $ が与えられます。 以下の条件を満たすような長さ $ N $ の文字列 $ s $ が存在するかどうかを判定してください。なお、文字の種類数に制限はないものとします。 - 条件:$ 1 $ 以上 $ N $ 以下のそれぞれの整数 $ i $ について、$ s[1:i] $ と $ s[N-i+1:N] $ の最長共通接頭辞の長さは $ l_i $ である

Input Format

入力は以下の形式で標準入力から与えられる。 > $ N $ $ l_1 $ $ l_2 $ $ ... $ $ l_N $

Output Format

条件を満たすような長さ $ N $ の文字列 $ s $ が存在するならば `Yes` を、そうでなければ `No` を出力せよ。

Explanation/Hint

### 注釈 - $ s[i,j]\ (i\ \leq\ j) $ は文字列 $ s $ の $ i $ 文字目から $ j $ 文字目までの部分文字列を指します。 例えば、$ s= $ `ABCBC` のとき、$ s[2:4] $ は `BCB`,$ s[4:5] $ は `BC` となります。 - 文字列 $ s,t $ の共通する接頭辞のうち、最長のものを $ s,t $ の最長共通接頭辞と呼びます。 例えば $ s= $ `ABCBC`,$ t= $ `ABD` のとき、最長共通接頭辞は `AB` となり、$ s= $ `ABC`,$ t= $ `BCD` のとき最長共通接頭辞は空文字列となります。 ### 制約 - $ 1\ \leq\ N\ \leq\ 3\ \times\ 10^{5} $ - $ 0\ \leq\ l_i\ \leq\ i $ - 与えられる入力は全て整数 ### Sample Explanation 1 \- 例えば `aba` という文字列が条件を満たします。 ### Sample Explanation 2 \- 長さ $ 2 $ の文字列は `aa` のような同じ文字の繰り返しで表せる文字列と、`ab` のような異なる $ 2 $ つの文字からなる文字列がありますが、どちらも条件を満たしません。