#iroha2019day2h. [iroha2019_day2_h]根室の巫女

[iroha2019_day2_h]根室の巫女

問題文

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

  • AiA_i11 以上 10610^6 以下の整数である。
  • 1leqileqN1 \\leq i \\leq N である整数 ii について、次の条件を満たす最大の整数 0leqx<i0 \\leq x < iBiB_i である。
    • A1A_1 から AxA_x までの xx 要素を取ってきた数列と、Aix+1A_{i-x+1} から AiA_i までの xx 要素を取ってきた数列が、列として等しい。

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

制約

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

入力

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

NN B1B_1 B2B_2 cdots\\cdots BNB_N

出力

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

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


入力例 1

8
0 0 1 0 1 2 3 2

出力例 1

Yes
1 2 1 3 1 2 1 2

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

  • A1A_1 から A2A_2 までの22要素を取ってきた列は (1,2)(1, 2)A6+12A_{6+1-2} から A6A_6 までの22要素を取ってきた列は (1,2)(1, 2) なので、 x=2x=2 のときに条件は満たされます。
  • A1A_1 から A4A_4 までの44要素を取ってきた列は (1,2,1,3)(1, 2, 1, 3)A6+14A_{6+1-4} から A6A_6 までの22要素を取ってきた列は (1,3,1,2)(1, 3, 1, 2) なので、 x=4x=4 のときは条件は満たされません。

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


入力例 2

4
0 1 2 1

出力例 2

No

解説

解説