← Все вопросы
СреднеПрограммирование

Как на Python проверить, может ли ладья пройти между двумя клетками за один ход?

Коротко
Ладья проходит за один ход, если совпадает столбец или строка: x1 == x2 or y1 == y2.

Условие

Даны две различные клетки шахматной доски. Определите, может ли ладья попасть с первой клетки на вторую одним ходом. Препятствия другими фигурами в этой задаче не рассматриваются.

Входные данные

Четыре целых числа от 1 до 8: столбец и строка первой клетки, затем столбец и строка второй. Числа могут быть записаны на отдельных строках.

Выходные данные

Выведите YES, если ход возможен, иначе NO.

Примеры

Входные числа Вывод
6 6 8 8 NO
1 4 7 4 YES
2 6 2 1 YES

Разбор

Ладья перемещается по вертикали или горизонтали. Поэтому достаточно проверить равенство столбцов либо равенство строк. По условию клетки различны.

import sys

x1, y1, x2, y2 = map(int, sys.stdin.read().split())
print('YES' if x1 == x2 or y1 == y2 else 'NO')

sys.stdin.read().split() корректно читает числа и через пробелы, и через переводы строк. Программа использует O(1) времени и дополнительной памяти для фиксированных четырёх координат.

PythonУсловный операторШахматы

Платформы

  • MAXIMUM