|
|
|||||
Регистрация: Oct 2006
Сообщений: 2,281
|
где границы цикла?Я вот до сих пор не могу вникнуть как он работает
|
|
|||||
Сообщение от miramax
n = 0; while (true) { n++ идём влево на n если в вагоне -n+1 (который мы точно выключали) - свет горит - значит кол-во вагонов return n*2+1 вагон -n - выключаем свет возвращаемся в начальную точку на +n вагонов, в нулевой вагон идём вправо на n вагонов влючаем свет возвращаемся в исходную точку на -n вагонов. } Согласен - вариант, с проверкой нулевого вагона - понятнее |
|
|||||
Я наверное совсем
__________________
interplanety |
|
|||||
Регистрация: Oct 2006
Сообщений: 2,281
|
а какие раньше варианты были? Потрогать лампочку?Решения нет?
Добавлено через 10 минут Цитата:
|
|
|||||
__________________
משיח לא בא משיח גם לא מטלפן |
|
|||||
блогер
Регистрация: Jun 2005
Адрес: Господи пожалуйста не Новосибирск
Сообщений: 6,598
Записей в блоге: 17
|
Мне понравилось решение @miramax. Кратко и понятно. Оптимизировать – смысла нет, в реальной жизни можно в вагоне, например, блевануть, в программировании – поставить другие метки.
__________________
Тут мужик танцует и поёт про флэш |
|
|||||
Регистрация: Oct 2006
Сообщений: 2,281
|
тем не менее у него квадратичная сложность
|
|
|||||
блогер
Регистрация: Jun 2005
Адрес: Господи пожалуйста не Новосибирск
Сообщений: 6,598
Записей в блоге: 17
|
Неуверен насчет квадратичной, возможно больше.
Но кого это волнует? Включай по 10 лампочек за раз и наворачивай круги, раз ты оказался в таком поезде. Если мы говорим о программировании, то, формализовано, у нас двусвязный список и чтобы посчитать вагоны – достаточно сравнивать ссылки/указатели вагонов с линейной сложностью. Нет указателей? Иметь указатель на "текущий" вагон и на "первый" и с линейной сложностью "телепортироваться" из вагона в вагон.
__________________
Тут мужик танцует и поёт про флэш |
Часовой пояс GMT +4, время: 15:08. |
|
« Предыдущая тема | Следующая тема » |
|
|