1, 2, 3 и размечена отметками от 0 до n. Бегун стартует на отметке 0 на полосе 2 и должен добраться до отметки n на любой полосе.
Массив blocks длины n + 1 описывает барьеры: если blocks[i] = k > 0, на отметке i полоса k перекрыта; если blocks[i] = 0, на отметке i барьеров нет. На каждой отметке перекрыто не больше одной полосы, на отметках 0 и n барьеров нет.
С отметки i на отметку i + 1 бегун перемещается по своей полосе, если на ней на отметке i + 1 нет барьера. Кроме того, на любой отметке он может перейти на любую другую полосу (не обязательно соседнюю), если та на этой отметке свободна.
Верните наименьшее число смен полосы, за которое можно добежать до финиша.blocks=[0, 2, 0, 0] → 1
На отметке 1 средняя дорожка перекрыта. Перед ней бегун переходит на дорожку 1 или 3 — одна смена.
blocks=[0, 1, 3, 2, 0] → 1
Можно бежать по полосе 2 до отметки 2, там перейти на полосу 1 и добежать по ней до финиша — одна смена. Без смен не обойтись: на отметке 3 полоса 2 перекрыта.
blocks=[0, 1, 1, 3, 0] → 0
Средняя дорожка свободна на всём пути — смены не нужны.
blocks=[0, 2, 0, 0]
1
«Запустить» — первые 3 теста у тебя в браузере, «Отправить» — все 124 теста на сервере, включая скрытые.