(这题耗了我2个月都没找到问题)
#include <bits/stdc++.h>
using namespace std;
long long n,m,a[500010],b[500001];
long long lowbit(int x){
return x & (-x);
}
void add(int j,int x)
{
for(int i=j;i<=n;i+=lowbit(i))
b[i]+=x;
}
long long sum(int j)
{
int ans=0;
for(int i=j;i>0;i-=lowbit(i))
ans+=b[i];
return ans;
}
int main(){
cin >> n >> m;
for(int i=1;i<n;++i){
cin >> a[i];
add(i,a[i]);
}
for(int i=1;i<=m;++i){
int id,x,y;
cin >> id >> x >> y;
if(id==1)
{
add(x,y);
}
if(id==2)
{
printf("%lld\n",sum(y)-sum(x-1));
}
}
}