Ctrl K

Ферзи, которые видят короля

Средняя
На шахматной доске 8 × 8 (клетки нумеруются с нуля) стоят несколько чёрных ферзей и один белый король. Клетка queens[i] = [x, y] — позиция i-го ферзя, king = [x, y] — позиция короля. Ферзь бьёт короля, если они стоят на одной горизонтали, вертикали или диагонали и между ними нет других фигур. Верните координаты всех ферзей, которые бьют короля, в любом порядке.
Пример 1
queens=[[2, 2], [5, 5], [2, 6], [6, 2], [4, 7]], king=[4, 4] → [[2, 2], [2, 6], [4, 7], [6, 2], [5, 5]]

По диагоналям короля видят ферзи [2, 2], [5, 5], [2, 6] и [6, 2]. Ферзь [4, 7] стоит на одной горизонтали с королём и тоже бьёт — между ними пусто.

Пример 2
queens=[[0, 1], [0, 3], [3, 0]], king=[0, 0] → [[0, 1], [3, 0]]

Ферзь [0, 3] закрыт ферзём [0, 1], а [3, 0] бьёт по вертикали.

Пример 3
queens=[[1, 2], [2, 1]], king=[0, 0] → []

Оба ферзя стоят ходом коня от короля — ни одна линия их не соединяет.

Ограничения
  • 1 ≤ len(queens) < 64
  • 0 ≤ x, y < 8 для всех ферзей и короля
  • Все фигуры стоят на разных клетках
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиЧтение по спирали СредняяКвадрат, пронумерованный по спирали СредняяСледующий шаг колонии клеток СредняяЗигзаг по диагоналям СредняяТри в ряд до упора Средняя
загружаем Python…
Вход
queens=[[2, 2], [5, 5], [2, 6], [6, 2], [4, 7]], king=[4, 4]
Ожидается
[[2, 2], [2, 6], [4, 7], [6, 2], [5, 5]]

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