问题1842--QинYу的家庭作业2.0

1842: QинYу的家庭作业2.0

[命题人 : ]
时间限制 : 1 sec  内存限制 : 128 MB

提交

题目描述

   开学后лято老师发现了QинYу作业不是自己写的,很生气重新给QинYу布置了一份新作业;
 лято老师又给QинYу一个由n个正整数组成的数组a。 让QинYу可以对其进行操作。  
 
在一个操作中,可以用⌊ai/2⌋替换数组ai中的任何元素,也就是说,用ai除以2的整数(小数舍去)替换ai。  
 
让QинYу判断是否可以应用这个操作(可能不用操作),使数组a变成从1到n的排列,也就是说,a数组包含从1到n的所有数字,每一个都恰好有一次。  
 
例如,如果a=[1,8,25,2], n=4,那么答案是yes。 可以这样做:  
 
将8替换为⌊8/2⌋=4,然后a=[1,4,25,2]。  
将25替换为⌊25/2⌋=12,那么a=[1,4,12,2]。  
将12替换为⌊12/2⌋=6,那么a=[1,4,6,2]。  
将6替换为⌊6/2⌋=3,那么a=[1,4,3,2]。  

但是QинYу又沉迷了一款新游戏-戴森球计划。(QинYу已经沉迷游戏无法自拔了所以他赌лято老师不能再次发现作业不是他写的)
QинYу又拜托给了你希望你可以帮他完成这个问题。
PS:最后лято老师又发现了QинYу作业不是自己写的,非常生气,叫了QинYу同学的家长来学校,并让QинYу回家反省三周。

输入

输入数据的第一行包含一个整数t(1≤t≤10^4)——测试用例的数量。

每个测试用例正好包含两行。
第一行包含整数n(1≤n≤50),
第二行包含整数a1,a2,…,an(1≤ai≤10^9)。

输出

对于每个测试用例,输出在单独的行上:
如果能让数组a变成从1到n的排列输出YES,否则输出NO。

样例输入 Copy

6
4
1 8 25 2
2
1 1
9
9 8 3 4 2 7 1 5 6
3
8 2 1
4
24 7 16 7
5
22 6 22 4 22

样例输出 Copy

YES
NO
YES
NO
NO
YES

提示

输入,输出 不要使用cin cout