delta[i] — прирост подписчиков сообщества ВКонтакте за i-й день: бывает и отрицательным, когда люди отписываются. Аналитик шлёт операции списком ops:
["set", i, x] — пересчитали i-й день, теперь прирост x;
["best", l, r] — найти непрерывный период внутри дней l..r включительно с наибольшим суммарным приростом и вернуть эту сумму. Период не пустой, хотя бы один день.
Верните список ответов на запросы best по порядку. Индексы с нуля.
В работе: Отчёт «лучшая неделя сообщества» по любому диапазону дат после правок статистики.
Пример 1
delta = [5, -8, 3, 4, -1] ops = [["best", 0, 4], ["set", 1, 2], ["best", 0, 4], ["best", 1, 1]]
[7, 14, 2]
Сначала лучший период — дни 2..3 (3 + 4 = 7). После правки весь отрезок 0..3 даёт 14.
Пример 2
delta = [-3, -1, -2] ops = [["best", 0, 2]]
[-1]
Все дни в минусе — берём один день с наименьшей потерей: −1.
Ограничения
- 1 ≤ n ≤ 10⁵, 0 ≤ длина
ops≤ 10⁵ - −10⁴ ≤
delta[i], x ≤ 10⁴ - Лимит — 3 с на тест (3000 мс).
print() и console.log() уходят в консоль.
def best_growth_period(delta, ops):
Источник: наша задача на данных VK. Условие пересказано своими словами.
Ожидаемый ответ не нужен: покажем, что вернула функция.
Здесь появится результат отправки.