
Вопрос задан 02.02.2019 в 04:41.
Предмет Информатика.
Спрашивает Семкин Руслан.
Перестановкой длины n называется последовательность из n чисел, в которой каждое из чисел от 1 до n
встречается ровно 1 раз. Например, (3, 4, 5, 1, 2) и (1, 2) — перестановки, а (1, 4, 3) и (2, 1, 3, 2) — нет. Назовем перестановку хитрой, если для любых двух соседних чисел в перестановке разница между ними больше или равна минимальному из них. Например, перестановка (3, 1, 2, 4) является хитрой, поскольку |3 − 1| ⩾ min(3, 1), |1 − 2| ⩾ min(1, 2) и |2 − 4| ⩾ min(2, 4). Дано число n, найдите хитрую перестановку длины n.

Ответы на вопрос

Отвечает Доброгост Анастасия.
Легко видеть, что перестановка вида (N, N - 2, N - 4, ..., 2, 1, 3, 5, 7, ..., N - 1) для четного N и (N - 1, N - 3, N - 5, ..., 2, 1, 3, 5, 7, ..., N) для нечетного N - хитрые (в каждой перестановке сначала выписаны все четные числа в обратном порядке, а потом все нечётные в обычном).
Код на питоне, генерирующий такую перестановку:
N = int(input())
print(*([x for x in range((N//2)*2, 0, -2)]+[x for x in range(1, N, 2)]))
Код на питоне, генерирующий такую перестановку:
N = int(input())
print(*([x for x in range((N//2)*2, 0, -2)]+[x for x in range(1, N, 2)]))


Топ вопросов за вчера в категории Информатика
Последние заданные вопросы в категории Информатика
Предметы
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili