n комнат с номерами от 0 до n - 1. Каждый день он заходит ровно в одну комнату; дни нумеруются с нуля, и в день 0 он в комнате 0.
Куда идти завтра, решает правило с массивом back_to длины n. Пусть сегодня охранник в комнате i:
- если он побывал в ней **нечётное** число раз (считая сегодняшний визит), завтра он идёт в комнату back_to[i], где 0 ≤ back_to[i] ≤ i;
- если **чётное** — завтра он идёт в комнату (i + 1) mod n.
Верните номер первого дня, к которому охранник побывал во всех комнатах. Такой день всегда наступает. Ответ бывает огромным, поэтому верните его по модулю 10⁹ + 7.back_to=[0, 1] → 2
День 0: комната 0, первый визит (нечётный) — назад в back_to[0] = 0. День 1: снова комната 0, визит второй (чётный) — вперёд. День 2: комната 1, все комнаты пройдены.
back_to=[0, 1, 1] → 4
Порядок комнат по дням: 0, 0, 1, 1, 2 — в комнату 2 охранник впервые попадает на день 4.
back_to=[0, 0, 0] → 6
Порядок: 0, 0, 1, 0, 0, 1, 2 — каждый первый визит в комнату 1 отбрасывает к самому началу, ответ 6.
back_to=[0, 1]
2
«Запустить» — первые 3 теста у тебя в браузере, «Отправить» — все 72 теста на сервере, включая скрытые.