Ctrl K

Сколько табелей дают премию

Сложная
Табель сотрудника за days рабочих дней — строка длины days, где каждый символ описывает один день: - 'P' — пришёл вовремя; - 'L' — опоздал; - 'A' — не пришёл. Премия за посещаемость положена, если одновременно: - пропусков ('A') за весь период меньше двух; - нигде нет трёх и более опозданий ('L') в дни подряд. Сколько существует разных табелей длины days, которые дают премию? Ответ может быть очень большим, поэтому верните его по модулю 10⁹ + 7.
Пример 1
days=2 → 8

Всего табелей из двух дней 9, и премию не даёт только AA — в нём два пропуска.

Пример 2
days=3 → 19

Из 27 табелей не подходят LLL и семь табелей с двумя или тремя пропусками.

Пример 3
days=50 → 100469819

Ответ берётся по модулю 10⁹ + 7.

Ограничения
  • 1 ≤ days ≤ 10⁵
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиШаблон с точкой и звёздочкой СложнаяСамый длинный сбалансированный отрезок скобок СложнаяВода между стенами СложнаяПодходит ли строка под шаблон СложнаяСамый большой горящий блок Сложная
загружаем Python…
Вход
days=2
Ожидается
8

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