Мини-урок · перед практикой

Ход короля

Король меняет каждую координату не более чем на единицу.

Как к ней подойти

Потренируйтесь переводить условие в проверку: какие случаи возможны и в каком порядке их проверять.

Коротко о теме

Ветвление выбирает один из нескольких вариантов. Запишите каждый случай словами, затем переведите их в if, elif и else. Отдельно проверьте границы: равенство часто меняет ответ.

Ключевая идея · Максимум модулей разностей

Максимум равен 1 ровно для восьми соседних клеток; совпадающие клетки исключены.

Проверьте перед запуском

  • Диагональный ход разрешён.
  • Нельзя проверять только сумму расстояний: диагональ меняет две координаты.

Сравните свой подход

Ниже - готовое решение, другой способ, если он есть, и важные детали проверки.

Ваше принятое решение

Рекомендуемое решение: Максимум модулей разностей

Максимум равен 1 ровно для восьми соседних клеток; совпадающие клетки исключены.

x1 = int(input())
y1 = int(input())
x2 = int(input())
y2 = int(input())
print('YES' if max(abs(x1 - x2), abs(y1 - y2)) == 1 else 'NO')

Время: O(1). Память: O(1).

Другой способ: Проверка восьми направлений

Явно создаём восемь разрешённых векторов хода и проверяем перемещение по множеству.

x1 = int(input())
y1 = int(input())
x2 = int(input())
y2 = int(input())

directions = {(dx, dy) for dx in (-1, 0, 1) for dy in (-1, 0, 1) if dx != 0 or dy != 0}
print('YES' if (x2 - x1, y2 - y1) in directions else 'NO')

Время: O(1). Память: O(1), восемь направлений.