Ctrl K

Марш через вражеские форты

Лёгкая
Клетки на прямой описаны массивом line: - 1 — ваш форт; - 0 — вражеский форт; - -1 — пустая клетка. Вы отправляете армию из одного своего форта в клетку i в одну пустую клетку j (влево или вправо). Двигаться можно только по вражеским фортам: все клетки строго между i и j должны быть равны 0. Все пройденные по пути вражеские форты захватываются. Верните наибольшее число вражеских фортов, которое можно захватить одним таким маршем. Если подходящего марша нет (или у вас нет фортов), верните 0.
Пример 1
line=[0, 1, 0, 0, 0, -1, 0, 1] → 3

Из форта в клетке 1 армия доходит до пустой клетки 5 и захватывает три вражеских форта (клетки 2, 3, 4). Из форта в клетке 7 до клетки 5 — только один. Ответ 3.

Пример 2
line=[1, 0, 1, 0, 0] → 0

Пустых клеток нет, идти некуда — ответ 0.

Пример 3
line=[-1, 1, 0, 0] → 0

Армия может пойти в соседнюю пустую клетку 0, но по пути вражеских фортов нет. Ответ 0.

Ограничения
  • 1 ≤ len(line) ≤ 10⁵
  • line[i] равно -1, 0 или 1
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиСжать повторы в отсортированном массиве ЛёгкаяВыкинуть лишнее значение ЛёгкаяСлияние в запасной хвост ЛёгкаяНули в конец ЛёгкаяЗначения в обоих списках Лёгкая
загружаем Python…
Вход
line=[0, 1, 0, 0, 0, -1, 0, 1]
Ожидается
3

«Запустить» — первые 3 теста у тебя в браузере, «Отправить» — все 103 теста на сервере, включая скрытые.