#AT1426. F - Many Slimes

F - Many Slimes

F - 许多史莱姆

得分:600分

问题说明

我们有一个史莱姆。

你可以选择将这个史莱姆的健康值设置为任意整数。

史莱姆每一秒都会繁殖一个健康值严格小于自己的史莱姆。你可以自由选择每个新生成的史莱姆的健康值。我们的史莱姆第一次繁殖将在一秒钟后发生。

确定是否可以设置我们第一个史莱姆及随后繁殖的史莱姆的健康值,使得在$N$秒内存在的$2^N$个史莱姆的健康值的多重集与多重集$S$相等。

这里$S$是一个包含$2^N$个(可能重复)整数的多重集:$S_1,~S_2,~...,~S_{2^N}$。

约束

  • 输入数据中所有的值都是整数。
  • $1 \leq N \leq 18$
  • $1 \leq S_i \leq 10^9$

输入

输入数据从标准输入给出,格式如下:

NN

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

输出

如果可以设置第一个史莱姆及随后繁殖的史莱姆的健康值,使得在$N$秒内存在的$2^N$个史莱姆的健康值的多重集与$S$相等,则输出Yes;否则,输出No


2
4 2 3 1
Yes

我们将展示一种方法,使得$2$秒钟内存在的史莱姆的健康值的多重集等于$S$。

首先,将第一个史莱姆的健康值设置为$4$。

通过让第一个史莱姆繁殖出一个健康值为$3$的史莱姆,存在$1$秒钟的史莱姆的健康值可以为$4,~3$。

然后,让第一个史莱姆繁殖出一个健康值为$2$的史莱姆,并让第二个史莱姆繁殖出一个健康值为$1$的史莱姆,存在$2$秒钟的史莱姆的健康值可以为$4,~3,~2,~1$,与$S$作为多重集相等。


2
1 2 3 1
Yes

$S$可能包含相同整数的多个实例。


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