Вам дан массив \(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\), то ответ положительный. Можно поступить так:
- Заменим \(8\) на \(\lfloor \frac{8}{2} \rfloor = 4\), тогда \(a = [1, 4, 25, 2]\).
- Заменим \(25\) на \(\lfloor \frac{25}{2} \rfloor = 12\), тогда \(a = [1, 4, 12, 2]\).
- Заменим \(12\) на \(\lfloor \frac{12}{2} \rfloor = 6\), тогда \(a = [1, 4, 6, 2]\).
- Заменим \(6\) на \(\lfloor \frac{6}{2} \rfloor = 3\), тогда \(a = [1, 4, 3, 2]\).
Выходные данные
Для каждого набора входных данных в отдельной строке выведите:
- YES, если можно сделать так, чтобы массив \(a\) стал перестановкой чисел от \(1\) до \(n\),
- NO в противном случае.
Вы можете выводить YES и NO в любом регистре (например, строки yEs, yes, Yes и YES будут распознаны как положительный ответ).