#include<cstdio>
using namespace std;
int n,m,f[500005];
inline void add(int x,int y){
for(;x<=n;x+=x&-x)f[x]+=y;
return ;
}
inline int ask(int x){
int re=0;
for(;x;x-=x&-x)re+=f[x];
return re;
}
int main(){
scanf("%d%d",&n,&m);
int x,y,opt;
for(int i=1;i<=n;i++){
scanf("%d",&x);
add(i,x);
}
while(m--){
scanf("%d%d%d",&opt,&x,&y);
if(opt==1)add(x,y);
else printf("%d\n",ask(y)-ask(x-1));
}
}
【洛谷P3374】【模板】【树状数组】树状数组1
最新推荐文章于 2024-08-16 20:37:20 发布