AT_abc140_f [ABC140F] Many Slimes
Description
[problemUrl]: https://atcoder.jp/contests/abc140/tasks/abc140_f
$ 1 $ 匹のスライムがいます。
あなたはこのスライムの「体力」を自由な整数の値に設定できます。
スライムは $ 1 $ 秒ごとに、自分より真に小さい整数の体力をもつスライムを $ 1 $ 匹生成することで増殖していきます。生成されるスライムの体力は、スライムごとに毎回自由に決めることができます。最初の増殖はこれから $ 1 $ 秒後に起こります。
最初のスライム、および生成されるスライムの体力を適切に定めることで、これから $ N $ 秒後に存在する $ 2^N $ 匹のスライムの体力の集合を集合 $ S $ に一致させることができるか判定してください。
ここで $ S $ は $ 2^N $ 要素からなる重複を認める整数の集合で、その要素は $ S_1,~S_2,~...,~S_{2^N} $ です。
Input Format
入力は以下の形式で標準入力から与えられる。
> $ N $ $ S_1 $ $ S_2 $ $ ... $ $ S_{2^N} $
Output Format
最初のスライム、および生成されるスライムの体力を適切に定めることで、$ N $ 秒後に存在する $ 2^N $ 匹のスライムの体力の集合を集合 $ S $ に一致させることができるなら `Yes` を、できないなら `No` を出力せよ。
Explanation/Hint
### 制約
- 入力は全て整数である。
- $ 1\ \leq\ N\ \leq\ 18 $
- $ 1\ \leq\ S_i\ \leq\ 10^9 $
### Sample Explanation 1
$ 2 $ 秒後に存在するスライムの体力の集合を $ S $ に一致させる一例を示します。 まず最初のスライムの体力を $ 4 $ に設定します。 最初のスライムに体力が $ 3 $ のスライムを生成させることで、$ 1 $ 秒後に存在するスライムの体力を $ 4,~3 $ とできます。 そして最初のスライムに体力が $ 2 $ の、$ 2 $ 匹目のスライムに体力が $ 1 $ のスライムを生成させることで、$ 2 $ 秒後に存在するスライムの体力を $ 4,~3,~2,~1 $ とできます。これは集合として $ S $ に一致しています。
### Sample Explanation 2
$ S $ は同じ整数を複数含むこともあります。