H - 根室の巫女 Editorial /

Time Limit: 2 sec / Memory Limit: 1024 MB

配点: 700

問題文

時は42XX年、世界は高橋君の呼び出した様々な存在により崩壊しつつあった。あなた以外の賢人たちはいまやみな限りのない空虚に呑み込まれ、残されたあなたと、巫女であったアブドゥル・いろはザードの遺した魔導書のみが希望である。すでに時間は残されておらず、任意の事象はあなたの 0 だけ後ろに這い寄っている。研究の結果、高橋君の唱えた呪文は長さ N の整数列 B_1, B_2, \dots, B_N であり、世界を安穏に戻すには、次の条件を満たす長さ N の整数列 A_1, A_2,\dots,A_N を呪文として唱えればよいことがわかった。

  • A_i1 以上 10^6 以下の整数である。
  • 1 \leq i \leq N である整数 i について、次の条件を満たす最大の整数 0 \leq x < iB_i である。
    • A_1 から A_x までの x 要素を取ってきた数列と、A_{i-x+1} から A_i までの x 要素を取ってきた数列が、列として等しい。

条件を満たす数列 A_1, A_2,\dots,A_N があるかどうか判定し、あるならば 1 つ示せ。

制約

  • 入力はすべて整数
  • 1 \leq N \leq 10^5
  • 0 \leq B_i < i

入力

入力は以下の形式で標準入力から与えられます。

N
B_1 B_2 \cdots B_N

出力

1 行目には、条件を満たす数列があればYesを、なければNoを出力してください。 条件を満たす数列があれば、2 行目に一例を空白区切りで出力してください。

答えが複数存在する場合、どれを答えても構いません。


入力例 1

8
0 0 1 0 1 2 3 2

出力例 1

Yes
1 2 1 3 1 2 1 2

たとえば i=6 について考えると、

  • A_1 から A_2 までの2要素を取ってきた列は (1, 2)A_{6+1-2} から A_6 までの2要素を取ってきた列は (1, 2) なので、 x=2 のときに条件は満たされます。
  • A_1 から A_4 までの4要素を取ってきた列は (1, 2, 1, 3)A_{6+1-4} から A_6 までの2要素を取ってきた列は (1, 3, 1, 2) なので、 x=4 のときは条件は満たされません。

条件を満たす最大の整数は x=2 なので、B_6 = 2 に矛盾しません。


入力例 2

4
0 1 2 1

出力例 2

No

解説

解説