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

Условие

Яша плавал в бассейне размером 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)

Комментарии

    1. "на расстоянии x метров от одного из длинных бортиков" - нет четкой связи в условии между переменными. X не обязательно относится к N/

  1. Если не обязательно использовать циклы, то вот вариант:

    N=int(input())
    M=int(input())
    x=int(input())
    y=int(input())
    a=[N, M, x, y]
    print(min(a))

  2. 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?')

  3. Так как-то попроще...
    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))

  4. Будьте добры, проверьте мой код:
    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)

  5. Доброго дня. Не понимаю, что не так в коде. В 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)

  6. 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))

Добавить комментарий

Ваш e-mail не будет опубликован.