EduBrick

J. Присвоить и сложить

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

Дан массив. Обрабатывайте запросы двух видов: 1 l r x — присвоить всем элементам отрезка [l,r][l, r] значение xx; 2 l r — вывести сумму на отрезке [l,r][l, r].

Формат ввода

В первой строке — числа nn и mm (1≤n,m≤1051 \le n, m \le 10^5). Во второй — nn чисел aia_i (∣ai∣≤109|a_i| \le 10^9). В следующих mm строках — запросы; 1≤l≤r≤n1 \le l \le r \le n, ∣x∣≤109|x| \le 10^9.

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

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

Примеры

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