EduBrick

C. Прибавить на отрезке, спросить сумму

2500 мс · 256 МБ · всё или ничего

Дан массив из nn чисел. Обрабатывайте запросы:

  • 1 l r v — прибавить vv ко всем элементам отрезка [l,r][l, r];
  • 2 l r — вывести сумму на отрезке [l,r][l, r].

Формат ввода

В первой строке — числа nn и qq (1≤n,q≤2⋅1051 \le n, q \le 2 \cdot 10^5). Во второй — nn чисел (∣ai∣≤109|a_i| \le 10^9). Далее qq запросов; ∣v∣≤104|v| \le 10^4, 1≤l≤r≤n1 \le l \le r \le n.

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

На каждый запрос второго вида выведите сумму.

Примеры

ввод
5 4
1 2 3 4 5
2 1 5
1 2 4 10
2 1 5
2 3 3
вывод
15
45
13
ввод
1 2
-1000000000
2 1 1
1 1 1 10000
вывод
-1000000000
Разбор идеи от автора задачи. Сначала попробуйте сами.
Войдите, чтобы отправлять решения.