atcoder#AGC006B. [AGC006B] Median Pyramid Easy

[AGC006B] Median Pyramid Easy

配点 : 400400

問題文

NN 段のピラミッドがあります。 段は上から順に 11, 22, ......, NN と番号が振られています。 各 1iN1 \leq i \leq N について、ii 段目には 2i12i-1 個のブロックが横一列に並んでいます。 また、各段の中央のブロックに注目すると、これらは縦一列に並んでいます。

N=4N=4 段のピラミッド

すぬけ君は NN 段目のブロックに (11, 22, ......, 2N12N-1) を並べ替えたもの(順列)を書き込みました。 さらに、次のルールに従い、残りすべてのブロックに整数を書き込みました。

  • あるブロックに書き込まれる整数は、そのブロックの左下、真下、右下のブロックに書き込まれた整数の中央値である。

ブロックに整数を書き込む例

その後、すぬけ君はすべてのブロックに書き込まれた整数を消してしまいました。 すぬけ君は、11 段目のブロックに書き込まれた整数が xx であったことだけを覚えています。

NN 段目のブロックに書き込まれた順列としてあり得るものが存在するか判定し、存在するならばひとつ求めてください。

制約

  • 2N1052 \leq N \leq 10^5
  • 1x2N11 \leq x \leq 2N-1

入力

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

NN xx

出力

NN 段目のブロックに書き込まれた順列としてあり得るものが存在しないならば、No を出力せよ。

存在するならば、Yes を出力した後、2N12N-1 行出力せよ。 このうち ii 行目には、順列の ii 番目の整数を出力せよ。

4 4
Yes
1
6
3
7
4
5
2

問題文中の図の例です。

2 1
No

NN 段目のブロックにどのような順列を書き込んでも、11 段目のブロックに書き込まれる整数は 22 となります。