Но т.к. количество вагонов нам заранее неизвестно, то начать лучше с единицы, а потом... надо подумать, или геометрическая прогрессия с коэффициентом 2 (и может минус 1), или какие-нибудь другие Фибоначчи
Я тоже к этому пришёл. И далеко не факт, что геометрическая прогрессия

, до которой легко догадаться - самая "быстрая" из всех последовательностей вообще. С ней у меня получилось

.
ЗЫ и, в частном случае, если не ошибаюсь, один длинный закольцованный в себя вагон определить нельзя
Конечно можно. Запоминаем свет в первом вагоне, идём во второй, там меняем, возвращаемся в первый. Если в первом тоже изменилось, то первый вагон=второй вагон.
Гасим первые 2 вагона. Потом возвращаемся назад и на обратном пути включаем. Если попался уже включенный, то мы нашли цикл. Потом повторяем то же со 4 вагонами, потом с 8 и т. д.
Количество операций будет не больше

Да, алгоритм верный. У меня примерно такой же алгоритм, только я шёл в

-ый вагон, менял там свет, возвращался в начальный и смотрел, поменялся ли где-нибудь ещё. Если поменялся, значит мы прошли поезд по кругу. Время получается

, если всегда возвращаться в первый и

, если в последней итерации уже не возвращаться в первый.
А вот с количеством операций

вы ошиблись. В наихудшем случае

получается как раз

, как и у меня, посмотрите.
Итак, остаётся открытым третий вопрос: можно ли сделать быстрее, чем за

(или за

, если я не прав и оценка
g______d всё-таки верная).
Если шагаем по геометрической прогрессии со знаменателем

, то

, минимум этой функции достигается как раз в точке

(что довольно любопытно).