CF1624C Division by Two and Permutation
Description
You are given an array $ a $ consisting of $ n $ positive integers. You can perform operations on it.
In one operation you can replace any element of the array $ a_i $ with $ \lfloor \frac{a_i}{2} \rfloor $ , that is, by an integer part of dividing $ a_i $ by $ 2 $ (rounding down).
See if you can apply the operation some number of times (possible $ 0 $ ) to make the array $ a $ become a permutation of numbers from $ 1 $ to $ n $ —that is, so that it contains all numbers from $ 1 $ to $ n $ , each exactly once.
For example, if $ a = [1, 8, 25, 2] $ , $ n = 4 $ , then the answer is yes. You could do the following:
1. Replace $ 8 $ with $ \lfloor \frac{8}{2} \rfloor = 4 $ , then $ a = [1, 4, 25, 2] $ .
2. Replace $ 25 $ with $ \lfloor \frac{25}{2} \rfloor = 12 $ , then $ a = [1, 4, 12, 2] $ .
3. Replace $ 12 $ with $ \lfloor \frac{12}{2} \rfloor = 6 $ , then $ a = [1, 4, 6, 2] $ .
4. Replace $ 6 $ with $ \lfloor \frac{6}{2} \rfloor = 3 $ , then $ a = [1, 4, 3, 2] $ .
Input Format
The first line of input data contains an integer $ t $ ( $ 1 \le t \le 10^4 $ ) —the number of test cases.
Each test case contains exactly two lines. The first one contains an integer $ n $ ( $ 1 \le n \le 50 $ ), the second one contains integers $ a_1, a_2, \dots, a_n $ ( $ 1 \le a_i \le 10^9 $ ).
Output Format
For each test case, output on a separate line:
- YES if you can make the array $ a $ become a permutation of numbers from $ 1 $ to $ n $ ,
- NO otherwise.
You can output YES and NO in any case (for example, strings yEs, yes, Yes and YES will be recognized as a positive response).
Explanation/Hint
The first test case is explained in the text of the problem statement.
In the second test case, it is not possible to get a permutation.