Ход ферзя
Вы решили задачу. Теперь можно сравнить подходы.
Общая строка, столбец или диагональ позволяют ход ферзя.
Авторский разбор для локальной версии на основе условия задачи. Это не выгрузка чужих посылок и не официальное решение исходного сайта.
Ваше принятое решение
Рекомендуемое решение: Проверка смещений
Общая строка, столбец или диагональ позволяют ход ферзя.
x1 = int(input())
y1 = int(input())
x2 = int(input())
y2 = int(input())
dx = abs(x2 - x1)
dy = abs(y2 - y1)
print("YES" if dx == 0 or dy == 0 or dx == dy else "NO")
Время: O(1). Память: O(1).
Другой способ: Другая форма условия
Та же геометрия выражена через алгебраическое условие.
x1 = int(input())
y1 = int(input())
x2 = int(input())
y2 = int(input())
dx = abs(x2 - x1)
dy = abs(y2 - y1)
print("YES" if x1 == x2 or y1 == y2 or x1 + y1 == x2 + y2 or x1 - y1 == x2 - y2 else "NO")
Время: O(1). Память: O(1).
На что обратить внимание
- Клетки по условию различны; ответ печатается латинскими YES или NO.
Рекомендация учитывает сложность и читаемость для этой задачи. Единственного самого быстрого решения для всех размеров входа и всех компьютеров может не быть.