Python

Задача «Яша плавает в бассейне»

Яша плавал в бассейне размером N × M метров и устал. В этот момент он обнаружил, что находится на расстоянии x метров от одного из длинных бортиков (не обязательно от ближайшего) и y метров от одного из коротких бортиков. Какое минимальное расстояние должен проплыть Яша, чтобы выбраться из бассейна на бортик? Программа получает на вход числа N, M, x, y. Программа должна вывести число метров, которое нужно проплыть Яше до бортика.
Вот, что я наваял. http://pastebin.com/jRTf7cRC не проходит проверки
96
45
41
22

98
77
31
80

46
90
28
77

60
98
39
27
если N > M:
min(x, N-x, y, M-y)
иначе:
min(x, M-x, y, N-y)

Собственно, это весь алгоритм (а то проверок в программе многовато)
Саша Хвизюк
Саша Хвизюк
77 376
Лучший ответ
Олег Ивахненко входные данные / результат
23 /
52 /-20
8
43
Сергей Дерикот Спасибо, действительно, что-то много проверок сделал. Дорешал сам, после часу отдыха и составления блок-схемы на листочке, и вот только зашел сюда.
))) я на неделю завис на этой задаче )) не прочитал внимательно условие ""расстоянии x метров от одного из длинных бортиков"
n = int(input()) ;m = int(input())
x = int(input()) ;y = int(input())
if n m/2:
x=m-x
if y > n/2:
y=n-y
print(y if y<x else x)
тут часть сьедена смотри скрин
Женя Гладченко Надо чтоб работало быстрее... как это сделать?
Сергей Синицын M,N,x,y = [int(input()) for i in range(4)]
If N > M:
print(min(N - y, M - x, x, y))
else:
print(min(M - y, N - x, x, y))
n = int(input())
m = int(input())
x = int(input())
y = int(input())
k = 0
if m > n:
k = n
n = m
m = k
if x > (m / 2):
l = m - x
else:
l = x
if y > (n / 2):
s = n - y
else:
s = y
if l < s:
print(l)
else:
print(s)
Это задача на проверку знаний условий if, elif, else. По условию, кроме этих функций ничего другого использоваться не должно. В таком случае, задача решается в лоб:

N = int(input())
M = int(input())
x = int(input())
y = int(input())
if x == y:
print('без разницы')
else:
if N > M:
if (M - x) > x and (N - y) > y:
if x > y:
print(y)
else:
print(x)
elif (M - x) > x and (N - y) < y:
if x > (N - y):
print(N - y)
else:
print(x)
elif (M - x) < x and (N - y) > y:
if (M - x) > y:
print(y)
else:
print(M - x)
elif (M - x) < x and (N - y) < y:
if (M - x) > (N - y):
print(N - y)
else:
print(M - x)
else:
if (N - x) > x and (M - y) > y:
if x > y:
print(y)
else:
print(x)
elif (N - x) > x and (M - y) < y:
if x > (M - y):
print(M - y)
else:
print(x)
elif (N - x) < x and (M - y) > y:
if (N - x) > y:
print(y)
else:
print(N - x)
elif (N - x) < x and (M - y) < y:
if (N - x) > (M - y):
print(M - y)
else:
print(N - x)
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)
зачем в коде m и n делят на два????
N = int(input())
M = int(input())
x = int(input())
y = int(input())
if N < M:
N1 = N - x
M1 = M - y
a = min([x, y, N, M, M1, N1])
print (a)
if M < N:
M1 = M - x
N1 = N - y
a = min([x, y, N, M, M1, N1])
print (a)
#python
N = int(input())
M = int(input())
x = int(input())
y = int(input())
long_way = 0
short_way = 0
if N > M:
long_way = N
short_way = M
else:
long_way = M
short_way = N
if (short_way / 2) <= x:
x = short_way - x
if (long_way / 2) <= y:
y = long_way - y
if abs(x) > abs(y):
print(abs(y))
else:
print(abs(x))
Влад Xd
Влад Xd
140
n = int(input())
m = int(input())
x = int(input())
y = int(input())
'Добавляем l - длинная сторона бассейна, далее определяем какая из сторон является длинной
l = int()
if n>=m:
l=n
if m>n:
l=m
m=n
'Находим короткий отрезок для x и y'
if x>m-x:
x=m-x
if y>l-y:
y=l-y
if x<=y:
print(x)
else:
print (y)
n = int(input())
m = int(input())
x = int(input())
y = int(input())
if x>y:
print (y)
else:
print (x)

не понимаю почему тут все такие большие коды пишут
Денис Зарубин Ты худший, код не робит
Ясмина Кабдолла Ваш код не правильный потому, что нужно найти расстояние до бортика который будет бдиже всего а у вас тупое сравнение что больше x или y а то что расстояние не будет равное не "x" не "y" у вас мысли не возникало?