Запити на проміжку значень
Обмеження: 2 сек., 256 МіБ
Зеник і Марічка розв’язують наступну задачу.
Задано масив із n цілих чисел ai.
Потрібно опрацювати q запитів наступних типів:
Знайти суму усіх елементів масиву, які не менші за lj та не більші за rj.
Змінити значення елементу масиву a в позиції pj на dj.
Ваше завдання — допомогти Зенику і Марічці опрацювати усі запити.
Вхідні дані
У першому рядку задано два цілі числа n та q — розмір масиву та кількість запитів відповідно.
У наступному рядку задано n цілих чисел ai через пробіл — початкові значення елементів масиву. Елементи пронумеровані цілими числами від 1 до n включно.
У наступних q рядках задано запити, які описано вище, в тому порядку, в якому їх слід виконувати. Формат запитів наступний:
1 lj rj — запит першого типу на знаходження суми.
2 pj dj — запит другого типу на зміну значення елементу.
Вихідні дані
Для кожного запиту першого типу виведіть одне ціле число — суму чисел.
Обмеження
1≤n,q≤3⋅105.
1≤pj≤n,
0≤lj≤rj≤106,
0≤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 |