0 и 1. Разобьём строку на блоки — максимальные отрезки одинаковых символов подряд: например, у 0011101 блоки 00, 111, 0, 1.
Строка подходит, если:
- её длина от shortest до longest включительно;
- длина каждого блока из единиц делится на ones_step;
- длина каждого блока из нулей делится на zeros_step.
Сколько всего подходящих строк? Ответ может быть огромным — верните его по модулю 10⁹ + 7.shortest=3, longest=4, ones_step=2, zeros_step=1 → 8
Единицы должны идти блоками чётной длины, нули — любыми. Длины 3: «000», «110», «011». Длины 4: «0000», «1100», «0110», «0011», «1111». Всего 8.
shortest=1, longest=5, ones_step=3, zeros_step=5 → 2
Подходят только «111» и «00000»: любая другая строка содержит блок неподходящей длины.
shortest=2, longest=2, ones_step=1, zeros_step=1 → 4
shortest ≤ longest ≤ 10⁵ones_step, zeros_step ≤ longestshortest=3, longest=4, ones_step=2, zeros_step=1
8
«Запустить» — первые 3 теста у тебя в браузере, «Отправить» — все 100 тестов на сервере, включая скрытые.