3630.Yaroslav and Points

Time Limit: 1s Memory Limit: 256MB

Yaroslav has n points that lie on the Ox axis. The coordinate of the first point is x1, the coordinate of the second point is x2, ..., the coordinate of the n-th point is - xn. Now Yaroslav wants to execute m queries, each of them is of one of the two following types:
Move the pj-th point from position xpj to position xpj+dj. At that, it is guaranteed that after executing such query all coordinates of the points will be distinct. Count the sum of distances between all pairs of points that lie on the segment [lj,rj] (lj \le rj). In other words, you should count the sum of: 3630_1.png.
Help Yaroslav.

Input Format(From the terminal/stdin)

The first line contains integer n - the number of points (1 \le n \le 105). The second line contains distinct integers x1,x2,...,xn - the coordinates of points (|xi| \le 109).

The third line contains integer m - the number of queries (1 \le m \le 105). The next m lines contain the queries. The j-th line first contains integer tj (1 \le tj \le 2) - the query type. If tj=1, then it is followed by two integers pj and dj (1 \le pj \le n,|dj| \le 1000). If tj=2, then it is followed by two integers lj and rj (-109 \le lj \le rj \le 109).

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

Output Format(To the terminal/stdout)

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.

Sample Input

Copy
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
 \n
  ·  ·  ·   ·  ·   ·   ·   \n
  \n
 ·   ·  \n
 · ·   \n
 · ·   \n
 · ·   \n
 ·    ·   \n
 ·   ·  \n
 · ·   \n
 · ·   \n
 ·    ·  \n
 ·  ·   \n
 · ·    \n
 ·   ·   \n
 · ·    \n
 · ·    \n
 · ·   \n
 · ·    \n
 · ·    \n
 · ·   \n
 ·   ·   \n
 · ·    \n

Sample Output

Copy
176
20
406
1046
1638
156
0
   \n
  \n
   \n
    \n
    \n
   \n
 \n

Submit

请先 登录

© 2025 FAQs