#include<bits/stdc++.h>
using namespace std;
int n,t,bl[50005],a[50005],lz[230];
inline void add(int l,int r,int c){
int r1=min(bl[l]*t,r);
for(int i=l;i<=r1;i++)a[i]+=c;
if(bl[l]!=bl[r])
for(int i=(bl[r]-1)*t+1;i<=r;i++)a[i]+=c;
for(int i=bl[l]+1;i<=bl[r]-1;i++)lz[i]+=c;
return ;
}
int main(){
scanf("%d",&n);
t=sqrt(n);
for(int i=1;i<=n;i++){
scanf("%d",&a[i]);
bl[i]=(i-1)/t+1;
}
int opt,l,r,c;
while(n--){
scanf("%d%d%d%d",&opt,&l,&r,&c);
if(opt)printf("%d\n",lz[bl[r]]+a[r]);
else add(l,r,c);
}
}
07-20
07-20
“相关推荐”对你有帮助么?
-
非常没帮助
-
没帮助
-
一般
-
有帮助
-
非常有帮助
提交