Каждая серия длится ровно n секунд. одинаковое интро длиной m секунд.
Одно нажатие перематывает воспроизведение видео на k секунд вперёд. он может мгновенно несколько раз нажать на кнопку перемотки.
Миша решил, что если придётся пропустить не более чем t секунд сериала, то он готов смириться с этим. какое максимальное количество секунд сериала он посмотрит, если пропустит как можно больше интро, не пропустив при этом более t секунд сериала.
если у Миши получится перемотать интро целиком, потеряв при этом не более t секунд сериала, то он поступит именно так. Иначе он пропустит столько секунд интро, сколько возможно.
num_full_series = (n - m) // n
2. Вычислить количество времени, которое Миша потеряет, если будет пропускать интро.
Это можно сделать, умножив количество полных серий на длительность интро.
time_lost = num_full_series * m
3. Если количество времени, которое Миша потеряет, превышает или равно максимально допустимое количество времени для пропуска (t), то можем пропустить (t) секунд интро и потерять эту же сумму времени при просмотре серии, для того, чтобы продолжить просмотр с места, где Миша остановился.
Проверяем это условие: `if time_lost >= t`, и если оно истинно, устанавливаем `time_lost` в значение `t`.
4. Определить общее количество времени, которое Миша посмотрит.
Общее время, которое Миша посмотрит, можно вычислить, добавив к общей продолжительности серий (n - m) время, которое он потеряет, отказываясь от просмотра интро (time_lost).
total_time = (n - m) + time_lost
Таким образом, наш код будет выглядеть следующим образом:
python
def max_watch_time(n, m, k, t):
num_full_series = (n - m) // n # количество полных серий
time_lost = num_full_series * m # потерянное время
if time_lost >= t:
time_lost = t # пропуск т из интро
total_time = (n - m) + time_lost # общее время просмотра
return total_time
Преимущество этого подхода заключается в том, что он использует только простые математические операции, поэтому он будет работать эффективно и на входных данных большого размера.Нажимая «Регистрация» или «Войти через Google», вы соглашаетесь с Публичной офертой, даете Согласие на обработку персональных данных, а также подтверждаете что вам есть 18 лет
Нажимая «Регистрация» или «Войти через Google», вы соглашаетесь с Публичной офертой, даете Согласие на обработку персональных данных, а также подтверждаете что вам есть 18 лет