Ctrl K

Дуэль стихий

Сложная
Два мага сходятся в дуэли из n раундов. В каждом раунде оба одновременно призывают одну из трёх стихий: огонь (F), воду (W) или землю (E). Очко за раунд получает тот, чья стихия сильнее: - огонь сильнее земли; - вода сильнее огня; - земля сильнее воды. Если стихии совпали, очков не получает никто. Вы заранее знаете план соперника — строку rival, где rival[i] — его стихия в раунде i. Свой план вы составляете сами, но одну и ту же стихию нельзя призывать два раунда подряд. Посчитайте, сколько существует ваших планов, при которых по итогам всех раундов у вас строго больше очков, чем у соперника. Ответ может быть очень большим, поэтому верните его по модулю 10⁹ + 7.
Пример 1
rival="W" → 1

Воду побеждает только земля: единственный выигрышный план — "E".

Пример 2
rival="EF" → 2

Допустимых планов шесть. Выигрывают два: "FW" (огонь бьёт землю, вода бьёт огонь — 2 : 0) и "EW" (ничья, затем вода бьёт огонь — 1 : 0).

Пример 3
rival="FFFF" → 8
Ограничения
  • 1 ≤ len(rival) ≤ 1000
  • rival состоит только из символов F, W и E
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиШаблон с точкой и звёздочкой СложнаяСамый длинный сбалансированный отрезок скобок СложнаяПодходит ли строка под шаблон СложнаяПеретасовка разрезами СложнаяСколькими способами вычеркнуть Сложная
загружаем Python…
Вход
rival="W"
Ожидается
1

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