
Ограничение времени 1 секунда Ограничение памяти 64MbВвод стандартный ввод или input.txtВывод
стандартный вывод или output.txtНа некоторых кросс-платформенных станциях метро (как, например, «Третьяковская») на разные стороны платформы приходят поезда разных направлений. Таня договорилась встретиться с подругой на такой станции, но поскольку подруга приехала из другого часового пояса, то из-за джетлага сильно проспала, и Тане пришлось долго её ждать. Поезда всегда ходят точно по расписанию, и Таня знает, что поезд стоит на платформе ровно одну минуту, а интервал между поездами (время, в течение которого поезда у платформы нет) составляет a минут для поездов на первом пути и b минут для поездов на втором пути. То есть на первый путь приезжает поезд и стоит одну минуту, затем в течение a минут поезда у платформы нет, затем в течение одной минуты у платформы стоит следующий поезд и т. д.Пока Таня стояла на платформе, она насчитала n поездов на первом пути и m поездов на втором пути. Определите минимальное и максимальное время, которое Таня могла провести на платформе, или сообщите, что она точно сбилась со счёта.Все поезда, которые видела Таня, она наблюдала в течение всей минуты, то есть Таня не приходит и не уходит с платформы посередине той минуты, когда поезд стоит на платформе.Формат вводаПервая строка входных данных содержит число a — интервал между поездами на первом пути. Вторая строка содержит число b — интервал между поездами на втором пути. Третья строка содержит число n — количество поездов на первом пути, которые увидела Таня. Четвёртая строка содержит число m — количество поездов на втором пути, которые увидела Таня. Все числа — целые, от 1 до 1000.Формат выводаПрограмма должна вывести два числа: минимальное и максимальное время в минутах, которое Таня могла стоять на платформе, или одно число -1, если Таня точно ошиблась.Пример 1Ввод Вывод13325 7Пример 2Ввод Вывод1512-1ПримечанияВ первом примере по первому пути поезда ходят через 1 минуту. По второму — через 3. Стоя на платформе 5, 6 или 7 минут, Таня могла насчитать 3 поезда на первом пути и 2 на втором.

Ответы на вопрос

int1 = int(input())
int2 = int(input())
col1 = int(input())
col2 = int(input())
min1 = col1 + int1 * (col1 - 1 ) # Минимальное время которое она находились на платформе, согласно условиям 1 стороны платформы
max2 = col1 + int1 * (col1 + 1 ) # Максимальное время которое она находились на платформе, согласно условиям 1 стороны платформы
min1 = col2 + int2 * (col2 - 1 ) # Минимальное время которое она находились на платформе, согласно условиям 2 стороны платформы
max2 = col2 + int2 * (col2 + 1 ) # Максимальное время которое она находились на платформе, согласно условиям 2 стороны платформы
if min1 > min2 : # Находим общий минимум для обеих сторон плафтормы. Это максимальное из двух значений
totalmin = min1
else :
totalmin = min2
if max1 > max2 : # Находим общий максимум для обеих сторон плафтормы. Это минимальное из двух значений
totalmax = max2
else : # Важно помнить Минимум максимален и постепенно уменьшается. Максимум минимален и постепенно растет
totalmax = max1
if totalmin > totalmax : # Если Минимальное время больше чем максимальное, то , ошибка в подсчете, во всех других случаях интервал существует
print(-1)
else :
print(totalmin , totalmax)
# это пояснение кода, не участвующее в программе



Для решения этой задачи нам необходимо определить минимальное и максимальное время, которое Таня могла провести на платформе.
Чтобы найти минимальное время, мы должны рассмотреть ситуацию, когда все поезда на первом и втором пути были увидены Таней в самый короткий промежуток времени. Поезда на первом пути приходят каждые a минут, а на втором пути — каждые b минут. Значит, если Таня видела n поездов на первом пути, то она могла провести на платформе минимальное время t_min, равное (n - 1) * a + 1 минута (время прихода последнего поезда). Аналогично, если Таня видела m поездов на втором пути, то она могла провести на платформе минимальное время t_min', равное (m - 1) * b + 1 минута.
Чтобы найти максимальное время, мы должны рассмотреть ситуацию, когда все поезда на первом и втором пути были увидены Таней в самый длинный промежуток времени. Значит, если Таня видела n поездов на первом пути, то она могла провести на платформе максимальное время t_max, равное n * a + 1 минута. Аналогично, если Таня видела m поездов на втором пути, то она могла провести на платформе максимальное время t_max', равное m * b + 1 минута.
Теперь мы можем решить задачу, используя эти формулы. Давайте запишем их в коде:
pythona = int(input())
b = int(input())
n = int(input())
m = int(input())
t_min = (n - 1) * a + 1
t_min_prime = (m - 1) * b + 1
t_max = n * a + 1
t_max_prime = m * b + 1
if t_min > t_max_prime or t_min_prime > t_max:
print(-1)
else:
print(max(t_min, t_min_prime), min(t_max, t_max_prime))
Однако, данная задача содержит русский текст ввода/вывода, что приводит к ошибке интерпретатора Python. Мы можем исправить это, используя кодировку UTF-8 и изменение функции input()
на чтение данных из файла:
pythonimport sys
input = sys.stdin.buffer.readline
a = int(input().decode('utf-8'))
b = int(input().decode('utf-8'))
n = int(input().decode('utf-8'))
m = int(input().decode('utf-8'))
t_min = (n - 1) * a + 1
t_min_prime = (m - 1) * b + 1
t_max = n * a + 1
t_max_prime = m * b + 1
if t_min > t_max_prime or t_min_prime > t_max:
print(-1)
else:
print(max(t_min, t_min_prime), min(t_max, t_max_prime))
Вы можете сохранить входные данные в файл input.txt
, запустить программу и получить результат в файле output.txt
.


Похожие вопросы
Топ вопросов за вчера в категории Информатика
Последние заданные вопросы в категории Информатика
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili