原题
差值数组开到4倍依然RE,储存参部分已经用了long long

谢谢各位dalao,如果蒟蒻眼瞎望轻喷
#include <bits/stdc++.h>
using namespace std;
int n,m;
long long a[50005],t[200020];
int lowbit(int k){
return k&(-k);
}
void Add(int x,long long k){
while(x<=n){
t[x]+=k;
x+=lowbit(x);
}
}
long long Get(int x){
long long ans=0;
while(x>0){
ans+=t[x];
x-=lowbit(x);
}
return ans;
}
int main(){
cin>>n>>m;
for(int i=1;i<=n;i++){
cin>>a[i];
Add(i,a[i]-a[i-1]);
}
while(m--){
int r,s,t;
long long u;
cin>>r;
if(r==1){
cin>>s>>t>>u;
Add(t+1,-u);
Add(s,u);
}
else{
cin>>s;
cout<<Get(s)<<endl;
}
}
return 0;
}