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

Яша плавает в бассейне

Сравниваем расстояния до всех четырёх бортиков.

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

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

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

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

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

Длинные бортики разделены короткой стороной бассейна, поэтому противоположный длинный бортик находится на расстоянии short−x.

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

  • x относится к длинному бортику, значит вычитать x нужно из короткой стороны.

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

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

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

Рекомендуемое решение: Минимум четырёх расстояний

Длинные бортики разделены короткой стороной бассейна, поэтому противоположный длинный бортик находится на расстоянии short−x.

n = int(input())
m = int(input())
x = int(input())
y = int(input())
short, long = min(n, m), max(n, m)
print(min(x, short - x, y, long - y))

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

Другой способ: Сначала ближайший бортик каждой пары

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

n = int(input())
m = int(input())
x = int(input())
y = int(input())
if n > m:
    n, m = m, n
if n - x < x:
    x = n - x
if m - y < y:
    y = m - y
print(x if x < y else y)

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