Задачка аналогична с закольцованным составом из вагонов, нужно посчитать количество вагонов. И можно включать/выключать свет в вагонах (менять на 0 и 1 соответственно). Предположим, что у нас есть вагон (точка массива), в котором мы сейчас находимся. Включаем свет в данном вагоне (1). Идем в соседний левый вагон, выключаем свет (0). Идем в соседний правый вагон от начального, выключаем свет (0). Итак, у нас есть последовательность 010. Опять идем в соседний левый вагон и включаем свет (1). Идем в соседний правый вагон и проверям: если свет выключен (а мы его на предыдущих шагах включили), то количество вагонов равно 2. Если нет, то алгоритм продолжается.
То есть, каждую итерацию можно описать так:
011...110
<-
111...11x
->
if
111...111 мы нашли середину состава, можно посчитать количество вагонов
else (имеем 111...110)
do
111...111
0111...1110.
repeat