eolymp
bolt
Try our new interface for solving problems
Məsələlər

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

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

Реализуйте структуру данных, которая поддерживает множество S целых чисел, с которой разрешается производить следующие операции:

  • add(i) - добавить в множество S число i (если оно там уже есть, то множество не меняется);
  • sum(l, r) - вывести сумму всех элементов x из S, которые удовлетворяют неравенству lxr.

Входные данные

Исходное множество S пусто. Первая строка содержит количество операций n (1n300000). Следующие n строк содержат операции. Каждая операция имеет вид либо "**+ i**", либо "**? l r**". Операция "**? l r**" задает запрос sum(l, r).

Если операция "**+ i**" идет в начале или после другой операции "+", то она задает операцию add(i). Если же она идет после запроса "?", и результат этого запроса был y, то выполняется операция add((i + y) mod 109).

Во всех запросах и операциях добавления параметры лежат в интервале от 0 до 109.

Выходные данные

Для каждого запроса выведите одно число - ответ на запрос.

Zaman məhdudiyyəti 3 saniyə
Yaddaşı istafadə məhdudiyyəti 128 MiB
Giriş verilənləri #1
6
+ 1
+ 3
+ 3
? 2 4
+ 1
? 2 4
Çıxış verilənləri #1
3
7