Problem Statement
We have one slime.
You can set the health of this slime to any integer value of your choice.
A slime reproduces every second by spawning another slime that has strictly less health. You can freely choose the health of each new slime. The first reproduction of our slime will happen in one second.
Determine if it is possible to set the healths of our first slime and the subsequent slimes spawn so that the multiset of the healths of the $2^N$ slimes that will exist in $N$ seconds equals a multiset $S$.
Here $S$ is a multiset containing $2^N$ (possibly duplicated) integers: $S_1,~S_2,~...,~S_{2^N}$.
Constraints
- All values in input are integers.
$1 \leq N \leq 18$$1 \leq S_i \leq 10^9$
Input
Input is given from Standard Input in the following format:
N
S_1 S_2 ... S_{2^N}
Output
If it is possible to set the healths of the first slime and the subsequent slimes spawn so that the multiset of the healths of the $2^N$ slimes that will exist in $N$ seconds equals $S$, print Yes; otherwise, print No.
样例
2
4 2 3 1
Yes
2
1 2 3 1
Yes
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
题面与样例版权归 AtCoder 及出题人所有;中文翻译由 AI 生成(CI 管线),如有出入请以原文为准。