Табло в бассейне
Условие
На соревнованиях по плаванию табло выдаёт время заплыва одним целым числом — сколько прошло сотых долей секунды (центiseconds).
Тренер записывает результат в привычном виде: M:SS.CC, где:
M— минуты (без ведущих нулей),SS— секунды от 00 до 59,CC— сотые доли секунды от 00 до 99.
Важно: число может не помещаться в 32-битный тип (как на олимпиадах), но в Python это не проблема.
Формат ввода
Одно целое число T — время в сотых долях секунды.
Формат вывода
Выведите строку в формате M:SS.CC.
Ограничения
0 ≤ T ≤ 10^9.
Пример
Ввод:
7543
Вывод:
1:15.43Как решать — идея подхода
Приём: Целочисленное разложение времени (divmod)
Ключевое наблюдение: табло даёт время в сотых долях секунды, значит нужно просто «разобрать» одно число на три части по основаниям 100 и 60. Это удобно делать целочисленным делением и остатком: сначала отделяем сотые, потом секунды переводим в минуты.
Приём: деление с остатком (в Python удобно divmod(a, b)), потому что формат устроен как смешанная система счисления: ... минут, затем ... секунд из 60, затем ... сотых из 100.
План решения:
- Считай целое
T(кол-во сотых). - Отдели сотые:
seconds, cc = divmod(T, 100). - Переведи секунды в минуты и секунды внутри минуты:
minutes, ss = divmod(seconds, 60). - Собери строку:
- минуты печатай как есть (без ведущих нулей);
- секунды
ssпечатай ровно двумя цифрами (00–59); - сотые
ccпечатай ровно двумя цифрами (00–99).
Сложность: O(1) по времени и памяти.
Частая ошибка: забыть про ведущие нули у SS и CC. Например, при T=5 нужно вывести 0:00.05, а не 0:0.5.
Разберись руками
Табло показало 7543 — это количество сотых секунды. Нужно превратить это число в запись как на таймере: минуты, секунды и сотые.
- Сколько ПОЛНЫХ секунд содержится в 7543 сотых? (то есть сколько раз по 100 сотых помещается)
- Сколько сотых секунды останется после того, как забрали 75 полных секунд?
- Теперь работаем с 75 секундами. Сколько ПОЛНЫХ минут в 75 секундах? (1 минута = 60 секунд)
- Сколько секунд останется после того, как забрали 1 минуту из 75 секунд?
Идея: Сначала отдели сотые от целых секунд: получи целые секунды и остаток сотых. Потом из целых секунд отдели минуты: получи целые минуты и остаток секунд. В конце собери строку: минуты как есть, а секунды и сотые запиши ровно двумя цифрами (если надо — с нулём впереди).
Решить задачу с автопроверкой на Python →
Куда дальше
- С нуля до олимпиады: маршрут — сколько занимает язык, какие приёмы нужны и к какому этапу это ведёт
- БВИ и льготы при поступлении — какой диплом что даёт и сколько лет он действует
- Перечневые олимпиады по информатике — олимпиады перечня Минобрнауки, их уровни и что нужно к диплому