rows рядов по cols столов. Стол в ряду i и колонке j обозначим [i, j] (нумерация с нуля). Новость появляется у стола [start_row, start_col].
Дальше она расходится волнами. Каждую минуту каждый стол, узнавший новость на прошлой минуте, сообщает её соседям строго в таком порядке: впереди ([i - 1, j]), справа ([i, j + 1]), сзади ([i + 1, j]), слева ([i, j - 1]). Столы одной волны сообщают по очереди — в том порядке, в каком сами узнали новость. Если сосед уже знает новость (или ему её уже сообщили раньше), его пропускают; за пределами опенспейса столов нет.
Верните координаты всех столов в том порядке, в каком они узнали новость, начиная со стола [start_row, start_col].rows=2, cols=3, start_row=0, start_col=1 → [[0, 1], [0, 2], [1, 1], [0, 0], [1, 2], [1, 0]]
Стол (0, 1) узнаёт первым. Он сообщает по порядку: впереди стола нет, справа (0, 2), сзади (1, 1), слева (0, 0). Затем (0, 2) сообщает (1, 2), (1, 1) — уже некому, кроме (1, 0), который ещё не знает; (0, 0) — некому.
rows=1, cols=4, start_row=0, start_col=3 → [[0, 3], [0, 2], [0, 1], [0, 0]]
Один ряд, новость идёт только влево.
rows=3, cols=3, start_row=1, start_col=1 → [[1, 1], [0, 1], [1, 2], [2, 1], [1, 0], [0, 2], [0, 0], [2, 2], [2, 0]]
rows=2, cols=3, start_row=0, start_col=1
[[0, 1], [0, 2], [1, 1], [0, 0], [1, 2], [1, 0]]
«Запустить» — первые 3 теста у тебя в браузере, «Отправить» — все 76 тестов на сервере, включая скрытые.