#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$
输入
输入数据从标准输入给出,格式如下:
输出
如果可以设置第一个史莱姆及随后繁殖的史莱姆的健康值,使得在$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