10663: Segment tree beats - setmin


Відправити розв'язок

Бали: 100 (partial)
Time limit: 1.0s
Memory limit: 256M

Author:
Problem type
Allowed languages
Brain****, C, C++, Java, Pascal, Python, v8js

Заданий масив з \(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

Коментарі

Ще немає коментарів.