EduBrick

C. И снова сумма

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

Реализуйте множество целых чисел с двумя операциями: добавить число и посчитать сумму всех чисел множества, лежащих в отрезке [l,r][l, r]. Повторное добавление уже имеющегося числа множество не меняет.

Запросы приходят онлайн: если операция добавления идёт сразу после запроса, ответ на который был yy, то добавляется не ii, а (i+y) mod 109(i + y) \bmod 10^9.

Формат ввода

В первой строке — число операций nn (1≤n≤3⋅1051 \le n \le 3 \cdot 10^5). В следующих nn строках — операции вида + i или ? l r. Все параметры целые, от 00 до 10910^9.

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

На каждый запрос ? выведите сумму чисел множества в отрезке [l,r][l, r].

Примеры

ввод
6
+ 1
+ 3
+ 3
? 2 4
+ 1
? 2 4
вывод
3
7
ввод
2
+ 5
? 0 1000000000
вывод
5
Разбор идеи от автора задачи. Сначала попробуйте сами.
Войдите, чтобы отправлять решения.