Тренируюсь на задачах, но проверяющая программа не засчитывает ответ
Яша плавал в бассейне размером N×M метров и устал. В этот момент он обнаружил, что находится на расстоянии x метров от одного из длинных бортиков (не обязательно от ближайшего) и y метров от одного из коротких бортиков. Какое минимальное расстояние должен проплыть Яша, чтобы выбраться из бассейна на бортик?
Входные данные:
Программа получает на вход целые числа
Программа должна вывести число метров, которое нужно проплыть Яше до бортика.
Мой код:
N = int(input())
M = int(input())
x = int(input())
y = int(input())
n = N - x
m = M - y
if (n <= x) and (n <= y) and (n <= m):
print(n)
if (x <= n) and (x <= y) and (x <= m):
print(x)
if (m <= x) and (m <= y) and (m <= y):
print(m)
if (y <= x) and (y <= n) and (y <= m):
print(y)
Ответы (2 шт):
Автор решения: eri
→ Ссылка
NxM может быть 20x10 и 10x20 . нужно поменять N и M местами если N>M, чтоб x сравнивался с коротким расстоянием.
if N>M: N,M = M,N
Автор решения: Wairua
→ Ссылка
На pythontutor проверил, все работает (задача оттуда)
N = int(input())
M = int(input())
x = int(input())
y = int(input())
length = max(N, M)
width = min(N, M)
short_length = min(width - x, width - (width - x))
short_width = min(length - y, length - (length - y))
response = min(short_length, short_width)
print(response)
Для любителей поплотнее )))
N, M, x, y = [int(input()) for _ in range(4)]
print(
min(
min(max(N, M) - y, max(N, M) - (max(N, M) - y)),
min(min(N, M) - x, min(N, M) - (min(N, M) - x))
)
)
