Страницы

Поиск по вопросам

среда, 5 февраля 2020 г.

Не сходятся ответы, хотя в решении уверен

#python #python_3x


Решаю задачи из интерактивного учебника ПИТОНТЬЮТОР.
Условие


Яша плавал в бассейне размером N × M метров и устал. В этот момент он обнаружил,
что находится на расстоянии x метров от одного из длинных бортиков (не обязательно
от ближайшего) и y метров от одного из коротких бортиков. Какое минимальное расстояние
должен проплыть Яша, чтобы выбраться из бассейна на бортик? Программа получает на вход
числа N, M, x, y. Программа должна вывести число метров, которое нужно проплыть Яше
до бортика.(Если захотите найти на сайте)

Вот моё решение.

N = int(input())
M = int(input())
x = int(input())
y = int(input())
if N < 2*x:
    x_min = abs(N - x)
else:
    x_min = x
if M < 2*y:
    y_min = abs(M - y)
else:
    y_min = y
if y_min < x_min:
    print(y_min)
else:
print(x_min)


Их программа решает задачу с данными(49
31
14
32) ответом 14, я с ответом 1. Чисто логически я прав. Но может моя логика какая-то
не правильная? Или это ошибка у них?

In [33]: min(x, y, N-y, M-x)
Out[33]: 14


Таким решением тоже попробовал. Тоже ошибки. Кто сможет решить задачу непосредственно
на сайте?
    


Ответы

Ответ 1



Вот так: min(N, M) короткий борт max(N, M) длинный борт N = int(input()) M = int(input()) x = int(input()) y = int(input()) print(min(x, y, min(N, M)-x, max(N, M)-y))

Ответ 2



Намёк: линия расстояния до короткого бортика параллельна длинному бортику. Решение: In [33]: min(x, y, N-y, M-x) Out[33]: 14 UPDATE: в решении я исходил из того что N - длина длинного бортика, а M - длина короткого. Т.к. в в условии это не указано, то правильным ответом следует считать ответ от @vp_arth

Комментариев нет:

Отправить комментарий