10663: Segment tree beats - setmin
Заданий масив з \(N\) цілих чисел.
Необхідно обробляти наступні запити:
1 \(L\) \(R\) \(X\) - замінити на відрізку всі числа \(A[i]\) на \(min(A[i],X)\)
2 \(L\) \(R\) - знайти суму чисел на відрізку \(L\)..\(R\)
Формат вхідних даних
В першому рядку число \(N\) - кількість елементів масиву (\(1 \le N \le 3*10^5\))
В наступному рядку \(N\) цілих чисел - елементи масиву (\(1 \le Ai \le 10^9\))
В першому рядку число \(M\) - кількість запитів (\(1 \le M \le 3*10^5\))
В кожному з наступних \(M\) рядків міститься опис відповідного запиту
кожен запит починається числом \(type\) - яке позначає тип запиту (1,2)
Якщо \(type=1\) то далі йдуть два числа \(L\) \(R\) (\(1 \le L \le R \le N\))
Якщо \(type=2\) то далі три числа \(L\) \(R\) \(X\) (\(1 \le L \le R \le N\)) , (\(1 \le X \le 10^9\))
Формат вихідних даних
Для кожного запиту типу 2 иведіть відповідь в окремому рядку
Приклад вхідних даних-1
5
1 2 3 4 5
6
2 1 5
1 3 5 4
2 1 5
1 1 3 1
2 1 4
2 1 5
Приклад вихідних даних-1
15
14
7
11
Коментарі