Дан массив a1, a2, ..., an и m множеств S1, S2, ..., Sm индексов элементов этого массива. Введем обозначение, Sk = {Sk, i} (1 ≤ i ≤ |Sk|), другими словами Sk, i — это некоторый элемент множества Sk.
В задаче нужно ответить на q запросов. Каждый запрос имеет один из следующих типов:
- Найти сумму элементов с индексами из множества Sk:
. Формат запроса — «? k». - Добавить число x ко всем элементам с индексами из множества Sk: aSk, i заменяется на aSk, i + x для всех i (1 ≤ i ≤ |Sk|). Формат запроса — «+ k x».
После каждого запроса первого типа, выведите искомую сумму.
Выходные данные
После каждого запроса первого типа, выведите искомую сумму в отдельной строке.
Пожалуйста, не используйте спецификатор %lld для чтения или записи 64-битных чисел на С++. Рекомендуется использовать потоки cin, cout или спецификатор %I64d.
| № | Входные данные | Выходные данные |
|
1
|
5 3 5
5 -5 5 1 -4
2 1 2
4 2 1 4 5
2 2 5
? 2
+ 3 4
? 1
+ 2 1
? 2
|
-3
4
9
|