RE三点,其余全错
求大佬指点
#include <bits/stdc++.h>
using namespace std;
int a[200000],c[200000],n,m,rw,x,k,y;
int lowbit(int x)
{
return x&(-x);
}
void add(int x,int d)
{
for(int i=x;i<=n;i+=lowbit(i))
{
c[i]+=d;
}
}
int sum(int x)
{
int ans=0;
for(int i=x;i>0;i-=lowbit(i))
{
ans+=c[i];
}
return ans;
}
int main()
{
cin>>n>>m;
for(int i=1;i<=n;i++)
{
cin>>a[i];
}
for(int i=1;i<=n;i++)
{
add(i,a[i]);
}
for(int i=1;i<=m;i++)
{
cin>>rw;
if(rw==1)
{
cin>>x>>k;
a[x]=a[x]+k;
add(x,a[i]);
}
else if(rw==2)
{
cin>>x>>y;
cout<<sum(y)-sum(x-1)<<endl;
}
}
return 0;
}