Ctrl K

Пары на своём расстоянии

Средняя
Дано число n. Нужно составить последовательность из чисел от 1 до n, в которой: - число 1 встречается ровно один раз; - каждое число k от 2 до n встречается ровно дважды, и между его двумя вхождениями расстояние ровно k (то есть если одно стоит на позиции i, то второе — на позиции i + k). Такая последовательность имеет длину 2n - 1. Среди всех подходящих последовательностей верните лексикографически наибольшую: ту, у которой в первой позиции, где последовательности различаются, стоит большее число. Для всех n из ограничений решение существует.
Пример 1
n=2 → [2, 1, 2]

Двойки должны стоять на расстоянии 2, единица — между ними: [2, 1, 2]. Других вариантов нет.

Пример 2
n=4 → [4, 2, 3, 2, 4, 3, 1]

Начинаем с 4 — её пара встаёт на позицию 4. Затем самое большое, что помещается во вторую позицию, — 2, потом 3. Получается [4, 2, 3, 2, 4, 3, 1]; с 3 на второй позиции расставить остальные не выйдет.

Пример 3
n=1 → [1]
Ограничения
  • 1 ≤ n ≤ 20
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиНаборы гирь на точный вес СредняяКарты на точную сумму СредняяВсе расстановки СредняяРазличные перестановки с повторами СредняяВсе наборы добавок Средняя
загружаем Python…
Вход
n=2
Ожидается
[2, 1, 2]

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