
B. Эффективный тайм-менеджмент ограничение по времени на тест1 s. ограничение по памяти на
тест256 MB вводstandard input выводstandard output Студент Василий очень любит все откладывать на последний момент. Ходят слухи, что даже условия этой задачи он писал за 10 минут до начала соревнования. Василий знает, что домашнюю работу по предмету «Эффективный тайм-менеджмент» нужно отправить в s времени. У коллеги по курсу он узнал, что на выполнение данной работы потребуется ровно t времени. Спасите Василия. Помогите ему определить, в какой момент времени p надо начать выполнять домашнее задание, чтобы оно было готово ровно в s. Учтите, что по отношению ко дню сдачи, Василий может начать выполнения задания на день раньше. Входные данные В первой строке задано текущее время s в виде строки в формате «hh:mm». Во второй строке задано время t в формате «hh:mm». Входные данные содержат корректное время в 24-часовом формате, иными словами 00≤hh≤23, 00≤mm≤59. Выходные данные В единственной строке выведите время p — время, когда Василию необходимо начать выполнять домашнее задание, в формате аналогичном формату времени во входных данных. Примеры входные данные 05:50 05:44 выходные данные 00:06 входные данные 00:00 01:00 выходные данные 23:00 входные данные 00:01 00:00 выходные данные 00:01 Примечание Не забывайте про ведущие нули!

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

Программа:
Python:
s, t = input(), input()
s_hour, s_minute = s[:2], s[3:]
t_hour, t_minute = t[:2], t[3:]
if int(s_hour) < 0 or int(t_hour) < 0 or int(s_hour) >= 24 or int(t_hour) >= 24:
print('Неверный ввод.')
exit()
elif int(s_minute) < 0 or int(t_minute) < 0 or int(s_minute) >= 60 or int(t_minute) >= 60:
print('Неверный ввод.')
exit()
else:
p_hour = str(int(s_hour) - int(t_hour))
p_minute = str(int(s_minute) - int(t_minute))
if len(p_hour) == 1: p_hour = '0' + p_hour
if len(p_minute) == 1: p_minute = '0' + p_minute
if int(p_minute) < 0:
p_hour = str(int(p_hour) - 1)
p_minute = str(60 + int(p_minute))
if int(p_hour) < 0: p_hour = str(24 + int(p_hour))
p = f'{p_hour}:{p_minute}'
print(p)
Объяснение:
В начале вводятся переменные s и t, необходимые по условию. Переменные s_hour и s_minute получают введённый час и введённое время соответственно, также работает и с t. Далее идут проверки на целосность введённых данных (что было введено реальное время). После проверок начинается основной код. Находим p_hour и p_minute, начинаем их анализировать. Добавляем нули перед числом, если в результате отнимания получилась одна цифра. Далее - ещё две проверки: если мы получили отрицательное число p_hour, то значит это предыдущий день и отсчёт надо начать сначала; если мы получили отрицательное чиссло p_minute, то отнимаем от p_hour один час и прибавляем к t_minute 60 мин (точнее, отнимаем от 60 мин текущее значение t_minute). В конце собираем время в переменную p и выводим её.
Результат:
00:01
00:00
00:01
00:00
01:00
23:00
05:50
05:44
00:06
12:30
14:50
21:40
24:10
20:15
Неверный ввод.



Для решения этой задачи мы можем воспользоваться следующим алгоритмом:
- Преобразуем время в минуты для более удобных вычислений.
- Вычислим разницу между временем сдачи (s) и временем выполнения задания (t) в минутах.
- Если разница меньше или равна 0, это означает, что Василий уже не успеет выполнить задание, поэтому нужно начать работу сразу после получения задания. В этом случае время начала работы будет равно времени сдачи (s).
- Если разница больше 0, то Василий может начать выполнение задания на день раньше (то есть за 24 часа до сдачи). В этом случае время начала работы будет равно времени сдачи минус разница во времени в минутах.
- Преобразуем результат обратно в формат "hh:mm" и выведем его.
Вот Python-код, который реализует этот алгоритм:
python# Функция для преобразования времени в минуты
def time_to_minutes(time_str):
hh, mm = map(int, time_str.split(':'))
return hh * 60 + mm
# Функция для преобразования минут в формат "hh:mm"
def minutes_to_time(minutes):
hh = minutes // 60
mm = minutes % 60
return f"{hh:02d}:{mm:02d}"
# Ввод времени сдачи и времени выполнения задания
s = input().strip()
t = input().strip()
# Преобразуем время в минуты
s_minutes = time_to_minutes(s)
t_minutes = time_to_minutes(t)
# Вычисляем разницу во времени
time_difference = s_minutes - t_minutes
# Если разница меньше или равна 0, начинаем работу сразу после получения задания
if time_difference <= 0:
start_time = s_minutes
else:
# Иначе начинаем работу за 24 часа до сдачи
start_time = s_minutes - 24 * 60
# Преобразуем результат в формат "hh:mm" и выводим
result_time = minutes_to_time(start_time)
print(result_time)
Вы можете ввести времена сдачи и выполнения задания, и скрипт выдаст время, когда Василию нужно начать выполнять домашнее задание.


Похожие вопросы
Топ вопросов за вчера в категории Информатика







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