#XBS202501. PPS

PPS

题目背景

前缀和想必你已经很熟悉了,对于一个长度为kk的数组bb,这个数组的前rr项的和为Sr=i=1rbiS_r=\sum\limits_{i=1}^rb_i。定义数组bb的前rr项“前前缀和”Tr=i=1rSiT_r=\sum\limits_{i=1}^rS_i

某天,小魏同学正在做“算法设计与分析”的课后习题,但他遇到了不会的问题,于是走过来向你请教。

题目描述

现给你一个长度为NN的数组AA,以及MM次操作,每次操作格式如下:

1 i x:令Ai:=xA_i:=x,其中:=:=表示赋值符号;

2 i:求数组AA前缀和数组^\dagger的前ii项的和。

^\dagger数组aa的前缀和数组满足si=j=1iajs_i=\sum\limits_{j=1}^ia_j

输入格式

本题中每个测试点有多组测试用例。第一行输入一个正整数TT(1T1041\le T\le 10^4),表示测试用例的数量。

每组测试用例的第一行输入两个正整数N,MN,M,表示数组AA的长度和操作数量。

第二行输入NN个数字,表示数组AA

接下来MM行,每行对应一个操作,格式见题目描述。

保证N,M2×105,0Ai,x105\sum N,\sum M\le 2\times 10^5,0\le A_i,x\le10^5

输出格式

对于每个操作2,输出一行,表示对应的答案。

样例输入输出

1
5 3
1 2 3 4 5
2 5
1 3 2
2 5
35
32

提示

小魏同学提醒您:

1.使用C++的同学请注意,本题输入数据量较大,请使用scanf输入数据,printf输出数据,或者使用以下三行代码加速cincout

ios::sync_with_stdio(false);
cin.tie(0);
cout.tie(0);

若选择后者,请勿混用C和C++的输入输出,否则会导致不可预测的结果。另外,本题请不要使用endl换行。

2.Python可能无法通过本题。