Запити на проміжку значень
Обмеження: 2 сек., 256 МіБ
Зеник і Марічка розв’язують наступну задачу.
Задано масив із nn цілих чисел aiai.
Потрібно опрацювати qq запитів наступних типів:
Знайти суму усіх елементів масиву, які не менші за ljlj та не більші за rjrj.
Змінити значення елементу масиву aa в позиції pjpj на djdj.
Ваше завдання — допомогти Зенику і Марічці опрацювати усі запити.
Вхідні дані
У першому рядку задано два цілі числа nn та qq — розмір масиву та кількість запитів відповідно.
У наступному рядку задано nn цілих чисел aiai через пробіл — початкові значення елементів масиву. Елементи пронумеровані цілими числами від 1 до nn включно.
У наступних qq рядках задано запити, які описано вище, в тому порядку, в якому їх слід виконувати. Формат запитів наступний:
1 ljlj rjrj — запит першого типу на знаходження суми.
2 pjpj djdj — запит другого типу на зміну значення елементу.
Вихідні дані
Для кожного запиту першого типу виведіть одне ціле число — суму чисел.
Обмеження
1≤n,q≤3⋅1051≤n,q≤3⋅105.
1≤pj≤n1≤pj≤n,
0≤lj≤rj≤1060≤lj≤rj≤106,
0≤ai,dj≤1060≤ai,dj≤106.
Приклади
Вхідні дані (stdin) | Вихідні дані (stdout) |
---|---|
7 4 1 0 3 3 7 2 4 1 2 3 2 4 7 1 2 3 1 1 6 | 8 5 10 |