题目详情
解题代码
#include<iostream>
using namespace std;
const int N =1e5+10;
int n,m;
int a[N];
int st[N],k,x,y;
int lowbit(int a)
{
return a & -a;
}
void add(int x,int v)
{
for(int i=x;i<=n;i+=lowbit(i)) st[i]+=v;
}
int query(int x)
{
int res=0;
for(int i=x;i;i-=lowbit(i)) res+=st[i];
return res;
}
int main()
{
scanf("%d %d",&n,&m);
for(int i=1;i<=n;i++) scanf("%d",&a[i]);
for(int i=1;i<=n;i++) add(i,a[i]);
while(m--)
{
scanf("%d%d%d",&k,&x,&y);
if(k==1) add(x,y);
else cout << query(y)-query(x-1) <<endl;
}
return 0;
}