#AT1190. 许多史莱姆

许多史莱姆

题目描述

我们有一个史莱姆。

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

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

这里SS是一个包含2N2^N个(可能重复)整数的多重集:S1S2S2NS_1,S_2,…,S_{2^N}

输入

第一行一个整数NN

第二行一共2N2^N个整数

输出

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

2
4 2 3 1
Yes

样例解释

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

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

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

然后,让第一个史莱姆繁殖出一个健康值为2的史菜姆,并让第二个史莱姆繁殖出一个健康值为1的史菜姆,存在2秒钟的史莱姆的健康值可以为4,3,2,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

提示

  • 1  N  18 1\ \leq\ N\ \leq\ 18
  • 1  Si  109 1\ \leq\ S_i\ \leq\ 10^9