atcoder#ABC140F. [ABC140F] Many Slimes

[ABC140F] Many Slimes

配点 : 600600

問題文

11 匹のスライムがいます。

あなたはこのスライムの「体力」を自由な整数の値に設定できます。

スライムは 11 秒ごとに、自分より真に小さい整数の体力をもつスライムを 11 匹生成することで増殖していきます。生成されるスライムの体力は、スライムごとに毎回自由に決めることができます。最初の増殖はこれから 11 秒後に起こります。

最初のスライム、および生成されるスライムの体力を適切に定めることで、これから NN 秒後に存在する 2N2^N 匹のスライムの体力の集合を集合 SS に一致させることができるか判定してください。

ここで SS2N2^N 要素からなる重複を認める整数の集合で、その要素は S1,S2,...,S2NS_1, \sim S_2, \sim ..., \sim S_{2^N} です。

制約

  • 入力は全て整数である。
  • 1N181 \leq N \leq 18
  • 1Si1091 \leq S_i \leq 10^9

入力

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

NN

S1S_1 S2S_2 ...... S2NS_{2^N}

出力

最初のスライム、および生成されるスライムの体力を適切に定めることで、NN 秒後に存在する 2N2^N 匹のスライムの体力の集合を集合 SS に一致させることができるなら Yes を、できないなら No を出力せよ。

2
4 2 3 1
Yes

22 秒後に存在するスライムの体力の集合を SS に一致させる一例を示します。

まず最初のスライムの体力を 44 に設定します。

最初のスライムに体力が 33 のスライムを生成させることで、11 秒後に存在するスライムの体力を 4,34, \sim 3 とできます。

そして最初のスライムに体力が 22 の、22 匹目のスライムに体力が 11 のスライムを生成させることで、22 秒後に存在するスライムの体力を 4,3,2,14, \sim 3, \sim 2, \sim 1 とできます。これは集合として SS に一致しています。

2
1 2 3 1
Yes

SS は同じ整数を複数含むこともあります。

1
1 1
No
5
4 3 5 3 1 2 7 8 7 4 6 3 7 2 3 6 2 7 3 2 6 7 3 4 6 7 3 4 2 5 2 3
No