P3368不知道哪里错了,求助
#include<bits/stdc++.h>
using namespace std;
int n, m, c[500010], a[500010];
int lowbit(int x)
{
return x&(-x);
}
int getSum(int i)
{
int sum=0;
while(i>0)
{
sum+=c[i];
i-=lowbit(i);
}
return sum;
}
void update(int i,int v)
{
while(i<=n)
{
c[i]+=v;
i+=lowbit(i);
}
}
int main()
{
cin>>n>>m;
for(int i=1;i<=n;i++)
{
cin>>a[i];
update(i,a[i]-a[i-1]);
}
for(int i=1;i<=m;i++)
{
int a, x, y, k;
cin>>a;
if(a==1)
{
cin>>x>>y>>k;
update(x,k);
update(y+1,-k);
}
else if(a==2)
{
cin>>x;
cout<<getSum(x)<<endl;
}
}
return 0;
}