CF295E.Yaroslav and Points

普及/提高-

通过率:0%

AC君温馨提醒

该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

Yaroslav has nn points that lie on the OxOx axis. The coordinate of the first point is x1x_{1} , the coordinate of the second point is x2x_{2} , ..., the coordinate of the nn -th point is — xnx_{n} . Now Yaroslav wants to execute mm queries, each of them is of one of the two following types:

  1. Move the pjp_{j} -th point from position xpjx_{pj} to position xpj+djx_{pj}+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 [lj,rj][l_{j},r_{j}] (lj<=rj)(l_{j}<=r_{j}) . In other words, you should count the sum of: .

Help Yaroslav.

输入格式

The first line contains integer nn — the number of points (1<=n<=105)(1<=n<=10^{5}) . The second line contains distinct integers x1,x2,...,xnx_{1},x_{2},...,x_{n} — the coordinates of points (xi<=109)(|x_{i}|<=10^{9}) .

The third line contains integer mm — the number of queries (1<=m<=105)(1<=m<=10^{5}) . The next mm lines contain the queries. The jj -th line first contains integer tjt_{j} (1<=tj<=2)(1<=t_{j}<=2) — the query type. If tj=1t_{j}=1 , then it is followed by two integers pjp_{j} and djd_{j} (1<=pj<=n,dj<=1000)(1<=p_{j}<=n,|d_{j}|<=1000) . If tj=2t_{j}=2 , then it is followed by two integers ljl_{j} and rjr_{j} (109<=lj<=rj<=109)(-10^{9}<=l_{j}<=r_{j}<=10^{9}) .

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

输出格式

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.

输入输出样例

  • 输入#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
    

    输出#1

    176
    20
    406
    1046
    1638
    156
    0
    
首页