Ctrl K

Рукопожатия без пересечений

Сложная
За круглым столом сидят people гостей, их число чётное. Гости разбиваются на пары, и в каждой паре жмут друг другу руки через стол — всего people / 2 рукопожатий одновременно. Руки, протянутые через стол, — это хорды окружности. Сколькими способами можно разбить гостей на пары так, чтобы никакие две хорды не пересекались? Ответ может быть очень большим, верните его по модулю 10^9 + 7.
Пример 1
people=2 → 1

Двое могут пожать руки только друг другу — один вариант.

Пример 2
people=6 → 5

Гость 1 жмёт руку гостю 2, 4 или 6 (с гостями 3 и 5 нельзя: по одну сторону рукопожатия остался бы один человек без пары). Вариантов 2 + 1 + 2 = 5.

Пример 3
people=10 → 42
Ограничения
  • 2 ≤ people ≤ 1000
  • people чётное
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиСколько раз написана единица СложнаяДегустаторы и испорченная бочка СложнаяДве группы с одинаковым средним СложнаяИспытания прототипов на падение СложнаяЧисла с рабочих клавиш Сложная
загружаем Python…
Вход
people=2
Ожидается
1

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