EduBrick

E. Присваивание и сумма

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

То же присваивание на отрезке, что в классной задаче E, но спрашивается сумма.

Тег присваивания assigned[b] устроен так же: либо блок весь равен одному числу, либо тега нет и настоящие значения лежат в a[i].

Формат ввода

В первой строке - числа nn и qq (1≤n,q≤2⋅1051 \le n, q \le 2 \cdot 10^5).

Во второй - nn чисел, по модулю не превосходящих 10910^9.

Далее qq строк. «1 l r x» - присвоить xx на отрезке. «2 l r» - сумма на отрезке.

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

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

Примеры

ввод
5 3
1 2 3 4 5
2 1 5
1 2 4 0
2 1 5
вывод
15
6
ввод
4 3
1 2 3 4
1 1 4 1000000000
2 1 4
2 2 3
вывод
4000000000
2000000000
Разбор идеи от автора задачи. Сначала попробуйте сами.
Войдите, чтобы отправлять решения.