Яша плавает в бассейне
Сравниваем расстояния до всех четырёх бортиков.
Как к ней подойти
Потренируйтесь переводить условие в проверку: какие случаи возможны и в каком порядке их проверять.
Ветвление выбирает один из нескольких вариантов. Запишите каждый случай словами, затем переведите их в 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).