Табло в бассейне

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

Условие

На соревнованиях по плаванию табло выдаёт время заплыва одним целым числом — сколько прошло сотых долей секунды (центiseconds).

Тренер записывает результат в привычном виде: M:SS.CC, где:

Важно: число может не помещаться в 32-битный тип (как на олимпиадах), но в Python это не проблема.

Формат ввода

Одно целое число T — время в сотых долях секунды.

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

Выведите строку в формате M:SS.CC.

Ограничения

0 ≤ T ≤ 10^9.

Пример

Ввод:

7543

Вывод:

1:15.43

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

Приём: Целочисленное разложение времени (divmod)

Ключевое наблюдение: табло даёт время в сотых долях секунды, значит нужно просто «разобрать» одно число на три части по основаниям 100 и 60. Это удобно делать целочисленным делением и остатком: сначала отделяем сотые, потом секунды переводим в минуты.

Приём: деление с остатком (в Python удобно divmod(a, b)), потому что формат устроен как смешанная система счисления: ... минут, затем ... секунд из 60, затем ... сотых из 100.

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

Сложность: O(1) по времени и памяти.

Частая ошибка: забыть про ведущие нули у SS и CC. Например, при T=5 нужно вывести 0:00.05, а не 0:0.5.

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

Табло показало 7543 — это количество сотых секунды. Нужно превратить это число в запись как на таймере: минуты, секунды и сотые.

Идея: Сначала отдели сотые от целых секунд: получи целые секунды и остаток сотых. Потом из целых секунд отдели минуты: получи целые минуты и остаток секунд. В конце собери строку: минуты как есть, а секунды и сотые запиши ровно двумя цифрами (если надо — с нулём впереди).

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

Куда дальше