Страницы

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

понедельник, 8 апреля 2019 г.

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

Решаю задачи из интерактивного учебника ПИТОНТЬЮТОР. Условие
Яша плавал в бассейне размером 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
Таким решением тоже попробовал. Тоже ошибки. Кто сможет решить задачу непосредственно на сайте?


Ответ

Вот так:
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))

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

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