Сколько времени уйдёт на рекламу

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

Условие

Ты смотришь запись урока длительностью n минут в плеере. Плеер вставляет рекламу так:

Найди, сколько секунд пройдёт от начала просмотра до конца урока вместе со всей рекламой.

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

Формат ввода

В одной строке три целых числа a b n.

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

Выведи одно целое число — общее время просмотра в секундах.

Ограничения

Пример

Ввод:

10 30 25

Вывод:

1560

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

Приём: Целочисленное деление (подсчёт событий по периодам)

Ключевое наблюдение: реклама включается после минут a, 2a, 3a, ... но только если этот момент строго раньше конца урока. То есть мы считаем все кратные a, которые меньше n.

Приём: целочисленное деление. Вместо симуляции минут (это слишком долго при n до 1e9) можно напрямую посчитать число срабатываний.

Как посчитать количество реклам:

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

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

Частая ошибка: считать n // a реклам. Это неверно, когда n кратно a: после ровно n минут урок уже кончился, и реклама не должна включаться. Поэтому нужен именно (n - 1) // a.

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

Урок идёт 25 минут. После каждых 10 полностью просмотренных минут плеер вставляет рекламу на 30 секунд, но если урок уже закончился — рекламы нет.

Идея: Сначала руками находишь, после каких полных «кусочков» по 10 минут реклама реально включится (и не включится после конца урока). Потом переводишь длительность урока в секунды и прибавляешь секунды всех найденных рекламных роликов.

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

Куда дальше