EduBrick

A. Сумма и изменение

2000 мс · 256 МБ · всё или ничего

Дан массив. Обрабатывайте запросы двух видов: узнать сумму на отрезке и присвоить элементу новое значение.

Это самое простое дерево отрезков, и написать его надо один раз так, чтобы дальше не переписывать. Узел хранит сумму своего отрезка, слияние — сложение, нейтральный элемент — ноль.

Формат ввода

В первой строке nn (1≤n≤1051 \le n \le 10^5). Во второй — nn чисел aia_i (∣ai∣≤109|a_i| \le 10^9). В третьей — mm (1≤m≤1051 \le m \le 10^5). В каждой из следующих mm строк — запрос: s l r (1≤l≤r≤n1 \le l \le r \le n) — сумма на отрезке, или u i x (1≤i≤n1 \le i \le n, ∣x∣≤109|x| \le 10^9) — присвоить ai=xa_i = x.

Формат вывода

Для каждого запроса s выведите сумму на отдельной строке.

Примеры

ввод
1
5
2
s 1 1
u 1 -3
вывод
5
Разбор идеи от автора задачи. Сначала попробуйте сами.
Войдите, чтобы отправлять решения.