Codeforces Round 172 (Div. 1) |
---|
Закончено |
Рассмотрим последовательность целых чисел a1, a2, ..., an. Вам требуется выполнять запросы двух типов:
В первой строке записано целое число n (1 ≤ n ≤ 105) — количество чисел в последовательности. В следующей строке записаны n целых чисел a1, a2, ..., an (|ai| ≤ 500).
В третьей строке записано целое число m (1 ≤ m ≤ 105) — количество запросов. В следующих m строках записаны запросы в формате, описанном в условии.
Для всех запросов на изменение элемента выполняются ограничения: 1 ≤ i ≤ n, |val| ≤ 500.
Для всех запросов на подсчет максимальной суммы не более чем k непересекающихся подотрезков выполняются ограничения: 1 ≤ l ≤ r ≤ n, 1 ≤ k ≤ 20. Гарантируется, что количество запросов на подсчет максимальной суммы не более чем k непересекающихся подотрезков не превышает 10000.
Для каждого запроса на подсчет максимальной суммы не более чем k непересекающихся подотрезков выведите ответ — максимальную сумму. Ответы на запросы выводите в порядке следования запросов во входных данных.
9
9 -8 9 -1 -1 -1 9 -8 9
3
1 1 9 1
1 1 9 2
1 4 6 3
17
25
0
15
-4 8 -3 -10 10 4 -7 -7 0 -6 3 8 -10 7 2
15
1 3 9 2
1 6 12 1
0 6 5
0 10 -7
1 4 9 1
1 7 9 1
0 10 -3
1 4 10 2
1 3 13 2
1 4 11 2
0 15 -9
0 13 -9
0 11 -10
1 5 14 2
1 6 12 1
14
11
15
0
15
26
18
23
8
В первом запросе первого примера можно выбрать единственную пару (1, 9). Таким образом, описанная сумма будет равна 17.
Взгляните на второй запрос первого примера. Как выбрать два подотрезка? (1, 3) и (7, 9)? Нет, конечно: сумма (1, 3) и (7, 9) равняется 20, в то время как при оптимальном выборе (1, 7) и (9, 9) сумма равняется 25.
Ответ на третий запрос равняется 0, мы предпочитаем ничего не выбирать, если на данном интервале все числа отрицательные.
Название |
---|