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