样例没过
全部WA
#include <iostream>
using namespace std;
#define int long long
int a[500001];
int c[500001];
int n,m,b,x,y,k;
int lowbit(int x){
return (x&(-x));
}
int sum(int x){
int num=0;
for(int i=x;i>=1;i=i-lowbit(i)){
num+=c[i];
}
return num;
}
int ask(int x,int y){
return sum(y)-sum(x-1);
}
void add(int x,int y,int k){
for(int i=x;i<=y;i=i+lowbit(i)){
c[i]+=k;
}
}
signed main(){
cin>>n;
cin>>m;
for(int i=1;i<=n;i++){
cin>>a[i];
a[i]+=a[i-1];
}
for(int i=1;i<=n;i++){
int l=i-lowbit(i)+1;
int r=i;
c[i]=a[r]-a[l-1];
}
for(int i=1;i<=m;i++){
cin>>b;
if(b==1){
cin>>x>>y>>k;
add(x,y,k);
}else{
cin>>x;
cout <<sum(x)/2<<endl;
}
}
return 0;
}