Задача № 4 Робот находится в левой клетке коридора высотой в 1 клетку. Если в коридоре есть хотя бы одна незакрашенная клетка, слева и справа от которой клетки закрашены, то робот должен оказаться в самой левой из таких клеток. Если таких клеток нет, то в правой клетке коридора.7
Ответ нейросети
13 января 2026 15:10
Задача понятна. В коридоре высотой 1 клетка имеем линейный ряд клеток, каждую можно закрасить (Painted) или оставить незакрашенной (Unpainted). Робот стартует в левой клетке. Правило гласит: если существует хотя бы одна незакрашенная клетка, слева и справа от которой клетки закрашены, то робот должен оказаться в самой левой из таких клеток. Если таких клеток нет, робот перемещается в правую клетку коридора.
Как найти ответ пошагово
Обозначим corridor как последовательность из n клеток: A[1], A[2], ..., A[n], где A[i] = 1, если клетка закрашена, и A[i] = 0, если незакрашенная.
Ищем все индексы i, для которых выполняются условия:
- i находится между 2 и n-1 (у клетки слева и справа есть соседи).
- A[i] = 0 (незакрашенная клетка).
- A[i-1] = 1 и A[i+1] = 1 (слева и справа от нее — закрашенные клетки).
Из найденных индексов выбираем самый левый i_min (минимальный i). Ответ – робот окажется в клетке i_min.
Если таких i нет (то есть либо все клетки закрашены, либо есть незакрашенные, но ни у одной из них нет закрашенных соседей слева и справа), то робот окажется в правой клетке коридора, то есть в клетке n.
Пример, чтобы понять работу правила
Пример 1: n = 5, паттерн A = [1, 0, 1, 0, 1] (P U P U P)
- i = 2: A[2] = 0, A[1] = 1, A[3] = 1 → подходит
- i = 4: A[4] = 0, A[3] = 1, A[5] = 1 → тоже подходит Наименьший такой i — 2. Ответ: робот окажется в клетке 2.
Пример 2: n = 5, A = [1, 0, 0, 1, 1] (P U U P P)
- Для i = 2: слева 1, справа 0 (не подходит)
- Для i = 3: слева 0 (не подходит) Нет подходящих клеток. Ответ: вправо, в клетку 5.
Пример 3: n = 4, A = [0, 1, 0, 1] (U P U P)
- i = 2 не подходит (A[2] = 1, т.к. это закрашенная клетка)
- i = 3: A[3] = 0, слева A[2] = 1, справа A[4] = 1 → подходит Наименьшее такое i = 3. Ответ: клетка 3.
Пример 4: все клетки закрашены: A = [1, 1, 1, 1]
- Нет незакрашенных клеток, следовательно ответа нет среди i; робот идёт в правую клетку: клетка n = 4.
Замечания
- Клетки на краях коридора (1 и n) не могут быть кандидатами, потому что у них нет слева или справа соседа.
- Если длина коридора n = 1, то условий выбрать промежуточную клетку вообще нет; по правилу робот окажется в правой (единственной) клетке, то есть в клетке 1.
- Если нет ни одной незакрашенной клетки, робот тоже идёт в правую клетку.
Как решить задачу на практике (алгоритм) и возможно реализовать
- Ввод: массив A длиной n с значениями 1 (закрашено) или 0 (незакрашено).
- Проход по i от 2 до n-1:
- если A[i] == 0 и A[i-1] == 1 и A[i+1] == 1, запоминаем i и останавливаемся на первом таком i (самый левый).
- Если нашли такой i, выводим его.
- Если нет, выводим n.
Пример простого кода (псевдокод)
- найти i_min = None
- для i от 2 до n-1:
- если A[i] == 0 и A[i-1] == 1 и A[i+1] == 1:
- i_min = i
- break
- если A[i] == 0 и A[i-1] == 1 и A[i+1] == 1:
- если i_min не равен None: ответ = i_min иначе: ответ = n
- вернуть ответ
Если хочешь, могу приложить конкретное решение под твою конкретную раскладку клеток (передай паттерн закрашенных/незакрашенных или картинку).
Понравился ответ?
Задай свой вопрос
Напиши любую задачу или вопрос, а нейросеть её решит



