Codeforces Round 179 (Div. 1)
E
Yaroslav and Points
Codeforces
2500
原题
← D→
翻译中…

Yaroslav has $*n*$ points that lie on the $*Ox*$ axis. The coordinate of the first point is $*x*_{1}$, the coordinate of the second point is $*x*_{2}$, ..., the coordinate of the $*n*$-th point is — $*x*_{*n*}$. Now Yaroslav wants to execute $*m*$ queries, each of them is of one of the two following types:

翻译中…
  1. Move the $*p*_{*j*}$-th point from position $*x*_{*p*_{*j*}}$ to position $*x*_{*p*_{*j*}} + *d*_{*j*}$. At that, it is guaranteed that after executing such query all coordinates of the points will be distinct.
  2. Count the sum of distances between all pairs of points that lie on the segment $[*l*_{*j*}, *r*_{*j*}]$ $(*l*_{*j*} ≤ *r*_{*j*})$. In other words, you should count the sum of: image.
翻译中…

Help Yaroslav.

翻译中…

Input

翻译中…

The first line contains integer $*n*$ — the number of points $(1 ≤ *n* ≤ 10^{5})$. The second line contains distinct integers $*x*_{1}, *x*_{2}, ..., *x*_{*n*}$ — the coordinates of points $(|*x*_{*i*}| ≤ 10^{9})$.

翻译中…

The third line contains integer $*m*$ — the number of queries $(1 ≤ *m* ≤ 10^{5})$. The next $*m*$ lines contain the queries. The $*j*$-th line first contains integer $*t*_{*j*}$ $(1 ≤ *t*_{*j*} ≤ 2)$ — the query type. If $*t*_{*j*} = 1$, then it is followed by two integers $*p*_{*j*}$ and $*d*_{*j*}$ $(1 ≤ *p*_{*j*} ≤ *n*, |*d*_{*j*}| ≤ 1000)$. If $*t*_{*j*} = 2$, then it is followed by two integers $*l*_{*j*}$ and $*r*_{*j*}$ $( - 10^{9} ≤ *l*_{*j*} ≤ *r*_{*j*} ≤ 10^{9})$.

翻译中…

It is guaranteed that at any moment all the points have distinct coordinates.

翻译中…

Output

翻译中…

For each type 2 query print the answer on a single line. Print the answers in the order, in which the queries follow in the input.

翻译中…

Please, do not use the %lld specifier to read or write 64-bit integers in C++. It is preferred to use the cin, cout streams of the %I64d specifier.

翻译中…

样例

Input #1
8
36 50 28 -75 40 -60 -95 -48
20
2 -61 29
1 5 -53
1 1 429
1 5 130
2 -101 -71
2 -69 53
1 1 404
1 5 518
2 -101 53
2 50 872
1 1 -207
2 -99 -40
1 7 -389
1 6 -171
1 2 464
1 7 -707
1 1 -730
1 1 560
2 635 644
1 7 -677
Output #1
176
20
406
1046
1638
156
0
InputCopy OutputCopy
题目信息
题号
295E
时间限制
5 s
内存限制
256 MB
标签
数据结构

题面与样例版权归 Codeforces 及出题人所有;中文翻译由 AI 生成(CI 管线),如有出入请以原文为准。