Условие
Яша плавал в бассейне размером N × M метров и устал. В этот момент он обнаружил, что находится на расстоянии x метров от одного из длинных бортиков (не обязательно от ближайшего) и y метров от одного из коротких бортиков. Какое минимальное расстояние должен проплыть Яша, чтобы выбраться из бассейна на бортик? Программа получает на вход числа N, M, x, y. Программа должна вывести число метров, которое нужно проплыть Яше до бортика.
Решение
n = int(input()) m = int(input()) x = int(input()) y = int(input()) # n, m = min(n, m), max(n, m) if n > m: n, m = m, n if x >= n / 2: x = n - x if y >= m / 2: y = m - y # print(min(x, y)) if x < y: print(x) else: print(y)
Не совсем понятен код в 7 строке.
n, m = m, n
Объясните, пожалуйста.
"на расстоянии x метров от одного из длинных бортиков" - нет четкой связи в условии между переменными. X не обязательно относится к N/
Если не обязательно использовать циклы, то вот вариант:
N=int(input())
M=int(input())
x=int(input())
y=int(input())
a=[N, M, x, y]
print(min(a))
Это не учитывает вариант когда, например, (N - x) < x
A = int(input())
B = int(input())
x = int(input())
y = int(input())
betterX = min(A, B)
betterY = max(A, B)
if y == max(A, B):
print (y)
elif x == min(A, B):
print(x)
elif x==0:
print (x)
elif y==0:
print(y)
elif x<= betterX/2:
if y<= betterY/2:
if x==0 or xbetterY/2:
if y == betterY:
print(y)
elif x (betterY - y):
print (betterY - y)
else:
print(x)
elif y<= betterY/2:
if x<=betterX/2:
if y == 0 or ybetterX/2:
if x==betterX:
print(x)
elif y<x:
print(y)
elif (betterX - x) betterX/2:
if (betterX - x) betterY/2:
print (betterY - y)
else:
print('WTF BRO?')
только необходимо учесть правильно отступы. Код проверен.
Так как-то попроще...
N = int(input())
M = int(input())
x = int(input())
y = int(input())
mmax = max(N, M)
mmin = min(N, M)
N = mmax - y
M = mmin - x
print(min(x,y,M,N))
Будьте добры, проверьте мой код:
N = int(input())
M = int(input())
x = int(input())
y = int(input())
a = N / 2
b = M / 2
if x <= N:
if x < a:
l1 = x
else:
l1 = N - x
if y <= M:
if y < b:
l2 = y
else:
l2 = M - y
print(l1) if l1 < l2 else print(l2)
Доброго дня. Не понимаю, что не так в коде. В 4 тестах из 40 выдает ошибку.
N = int(input())
M = int(input())
x = int(input())
y = int(input())
a = [N,M,x,y]
if x>N-x>=0:
a.append(N-x)
if y>M-y>=0:
a.append(M-y)
A = min(a)
b = [N,M,x,y]
if x>M-x>=0:
b.append(M-x)
if y>N-y>=0:
b.append(N-y)
B = min(b)
if A<B:
print(A)
else:
print(B)
N = int(input())
M = int(input())
x = int(input())
y = int(input())
if N>M:
x1 = abs(N-y)
y1 = abs(M-x)
elif M>N:
x1 = abs(M-y)
y1 = abs(N-x)
if (x==0 or y==0):
print(0)
else:
print(min(x, y, x1, y1))