#include <bits/stdc++.h>
#define lowbit(x) ((x) & - (x))
using namespace std;
int n,m,tree[500005],tmp;
inline unsigned int read(){
char ch=getchar();
long long x=0,f=1;
while(ch<'0'||ch>'9'){if(ch=='-') f=-1;ch=getchar();}
while(ch>='0'&&ch<='9') x=x*10+(ch^48),ch=getchar();
return x*f;
}
inline void add(int x, int d) {
while(x<=n) {
tree[x] += d;
x -= lowbit(x);
}
}
inline int Sum(int x) {
int sum=0;
while(x>0) {
sum += tree[x];
x -= lowbit(x);
}
return sum;
}
int main(void) {
scanf("%d %d",&n,&m);
for(int i=0;i<n;i++) {
tmp=read();
add(i,tmp);
}
for(int i=0;i<m;i++) {
int opt=read(),x=read(),y=read();
if(opt&1) add(x,y);
else printf("%d",Sum(y)-Sum(x-1));
}
return 0;
}
感觉就是标准树状数组模板啊 咋会TLE呢