Яша плавает в бассейне
Вы решили задачу. Теперь можно сравнить подходы.
Сравниваем расстояния до всех четырёх бортиков.
Авторский разбор для локальной версии на основе условия задачи. Это не выгрузка чужих посылок и не официальное решение исходного сайта.
Ваше принятое решение
Рекомендуемое решение: Минимум четырёх расстояний
Длинные бортики разделены короткой стороной бассейна, поэтому противоположный длинный бортик находится на расстоянии 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).
На что обратить внимание
- x относится к длинному бортику, значит вычитать x нужно из короткой стороны.
Рекомендация учитывает сложность и читаемость для этой задачи. Единственного самого быстрого решения для всех размеров входа и всех компьютеров может не быть.