Ctrl K

Шарики в коробке с перегородками

Средняя
Коробка разбита на сетку box из m строк и n столбцов, сверху и снизу она открыта. В каждой клетке по диагонали стоит перегородка: - 1 — перегородка идёт из левого верхнего угла в правый нижний и отправляет шарик вправо; - -1 — перегородка идёт из правого верхнего угла в левый нижний и отправляет шарик влево. Сверху в каждый столбец бросают по одному шарику. Проходя клетку, шарик скатывается по перегородке в соседний столбец на строку ниже. Шарик застревает, если перегородка направляет его в боковую стенку коробки или если две соседние перегородки образуют «ложбинку» в форме буквы V (1 слева и -1 справа). Верните массив длины n: для шарика, брошенного в столбец j, — номер столбца, из которого он выпадет снизу, или -1, если он застрянет.
Пример 1
box=[[1, -1, 1], [1, 1, -1]] → [-1, -1, -1]

Шарики из столбцов 0 и 1 сразу попадают в «ложбинку» между досками 1 и -1 и застревают. Шарик из столбца 2 упирается в правую стенку.

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

В первом ряду каждый шарик (кроме крайнего правого, он застревает у стенки) сдвигается вправо, во втором — возвращается влево. Итог: [0, 1, 2, -1].

Пример 3
box=[[-1, -1], [1, 1]] → [-1, 1]
Ограничения
  • 1 ≤ m, n ≤ 100
  • box[i][j] равно 1 или -1
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиЧтение по спирали СредняяКвадрат, пронумерованный по спирали СредняяСледующий шаг колонии клеток СредняяЗигзаг по диагоналям СредняяТри в ряд до упора Средняя
загружаем Python…
Вход
box=[[1, -1, 1], [1, 1, -1]]
Ожидается
[-1, -1, -1]

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