Олимпиадный тренинг

Задача . C. Деление на два и перестановка


Вам дан массив \(a\), состоящий из \(n\) целых положительных чисел. Над ним вы можете совершать операции.

За одну операцию можно заменить любой элемент массива \(a_i\) на \(\lfloor \frac{a_i}{2} \rfloor\), то есть на целую часть от деления \(a_i\) на \(2\) (округление вниз).

Проверьте, можно ли за произвольное количество операций (возможно, \(0\)) сделать так, чтобы массив \(a\) стал перестановкой чисел от \(1\) до \(n\) — то есть содержал все числа от \(1\) до \(n\), каждое по одному разу.

Например, если \(a = [1, 8, 25, 2]\), \(n = 4\), то ответ положительный. Можно поступить так:

  1. Заменим \(8\) на \(\lfloor \frac{8}{2} \rfloor = 4\), тогда \(a = [1, 4, 25, 2]\).
  2. Заменим \(25\) на \(\lfloor \frac{25}{2} \rfloor = 12\), тогда \(a = [1, 4, 12, 2]\).
  3. Заменим \(12\) на \(\lfloor \frac{12}{2} \rfloor = 6\), тогда \(a = [1, 4, 6, 2]\).
  4. Заменим \(6\) на \(\lfloor \frac{6}{2} \rfloor = 3\), тогда \(a = [1, 4, 3, 2]\).
Входные данные

В первой строке входных данных записано целое число \(t\) (\(1 \le t \le 10^4\)) — количество наборов входных данных в тесте.

Каждый набор входных данных содержит ровно две строки. В первой из них записано целое число \(n\) (\(1 \le n \le 50\)), во второй записаны целые числа \(a_1, a_2, \dots, a_n\) (\(1 \le a_i \le 10^9\)).

Выходные данные

Для каждого набора входных данных в отдельной строке выведите:

  • YES, если можно сделать так, чтобы массив \(a\) стал перестановкой чисел от \(1\) до \(n\),
  • NO в противном случае.

Вы можете выводить YES и NO в любом регистре (например, строки yEs, yes, Yes и YES будут распознаны как положительный ответ).

Примечание

Первый тест разобран в тексте условия задачи.

Во втором тесте получить искомый массив невозможно.


Примеры
Входные данныеВыходные данные
1 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
YES
NO
YES
NO
NO
YES

time 3000 ms
memory 256 Mb
Правила оформления программ и список ошибок при автоматической проверке задач

Статистика успешных решений по компиляторам
 Кол-во
С++ Mingw-w645
Комментарий учителя