Будильник и лишние минуты

тема: Арифметика и формулы (O(1)) · уровень: базовый

Условие

Утром ты ставишь будильник на время H:M, а потом внезапно решаешь «посплю ещё K минут». Телефон честно прибавляет минуты и показывает новое время на 24‑часовых часах.

Твоя задача — узнать, что покажет телефон.

Важно: K может быть очень большим (как на олимпиадах, значения могут не помещаться в 32‑битный int; в Python это не проблема).

Формат ввода

В одной строке записаны три целых числа: H M K.

Формат вывода

Выведи время после добавления K минут в формате HH:MM (две цифры на часы и две на минуты, с ведущими нулями при необходимости).

Ограничения

Пример

Ввод:

7 50 15

Вывод:

08:05

Как решать — идея подхода

Приём: Перевод времени в минуты + модуль

Ключевое наблюдение: на 24‑часовых часах время «зациклено». После 24*60 минут мы снова в 00:00, поэтому достаточно считать по модулю 1440.

Приём: переводим время в «минуты от начала суток». Так проще прибавлять K (даже очень большое), а затем вернуть результат обратно в часы и минуты.

План решения:

Сложность: O(1) по времени и памяти — всего несколько арифметических операций.

Частая ошибка: забыть про переход через сутки и не сделать % (24*60), из‑за чего при большом K часы могут выйти за диапазон 0..23. Ещё одна грабля — вывести без ведущих нулей (должно быть 08:05, а не 8:5).

Разберись руками

Будильник стоит на 7:50. Ты решил поспать ещё 15 минут. Нужно понять, какое время покажет телефон после прибавления минут.

Идея: Сначала переведи текущее время в минуты от начала суток, прибавь нужные минуты, а потом обратно разложи на часы и минуты: сколько полных часов по 60 минут и сколько минут осталось. Если вдруг минут стало больше, чем в одних сутках, выкинь полные сутки (1440 минут), чтобы время снова оказалось в пределах 00:00–23:59. В конце выведи часы и минуты двумя цифрами.

Решить задачу с автопроверкой на Python →

Куда дальше