Ctrl K

K-й зигзаг из чётных и нечётных

Сложная
Назовём зигзагом расстановку чисел от 1 до size (каждое ровно один раз), в которой чётные и нечётные числа строго чередуются: никакие два соседа не имеют одинаковую чётность. Отсортируем все зигзаги лексикографически (как списки) и вернём тот, что стоит на месте rank (нумерация с единицы). Если зигзагов меньше, чем rank, верните пустой список. Зигзагов может быть астрономически много, так что перебор не годится.
Пример 1
size=4, rank=5 → [3, 2, 1, 4]

Подходящие порядки по возрастанию: [1,2,3,4], [1,4,3,2], [2,1,4,3], [2,3,4,1], [3,2,1,4], [3,4,1,2], [4,1,2,3], [4,3,2,1]. Пятый — [3,2,1,4].

Пример 2
size=3, rank=3 → []

При трёх числах подходят только [1,2,3] и [3,2,1] — третьего нет, ответ пустой список.

Пример 3
size=5, rank=1 → [1, 2, 3, 4, 5]
Ограничения
  • 1 ≤ size ≤ 100
  • 1 ≤ rank ≤ 10¹⁵
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиXOR каждого подмножества ЛёгкаяЧестный раздел цветных бусин СложнаяДругие порядки для того же дерева поиска Сложнаяk-й маршрут по алфавиту СложнаяВстреча видов мха Сложная
загружаем Python…
Вход
size=4, rank=5
Ожидается
[3, 2, 1, 4]

«Запустить» — первые 3 теста у тебя в браузере, «Отправить» — все 98 тестов на сервере, включая скрытые.