EduBrick

M. Сумма в диапазоне, онлайн

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

Поддерживается мультимножество целых чисел, изначально пустое. Операции: добавить число и узнать сумму чисел множества, лежащих в заданном диапазоне. Все числа в операциях зашифрованы последним выведенным ответом.

Формат ввода

В первой строке qq (1≤q≤2⋅1051 \le q \le 2 \cdot 10^5). В следующих qq строках операции.

Операция + y — добавить число x=(y+last) mod (109+1)x = (y + last) \bmod (10^9 + 1).

Операция ? y z — вывести сумму чисел множества в диапазоне [min⁡(u,v),max⁡(u,v)][\min(u, v), \max(u, v)], где u=(y+last) mod (109+1)u = (y + last) \bmod (10^9 + 1), v=(z+last) mod (109+1)v = (z + last) \bmod (10^9 + 1).

Здесь lastlast — последний выведенный ответ, до первого запроса last=0last = 0. Числа yy и zz во вводе — от 00 до 10910^9.

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

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

Примеры

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