#include<iostream>
using namespace std;
int a[1000001],n,l,r,x,k,s1,s2;
void tree_sum(int left,int right,int pos)
{
if(left==right)
{
if(left>=l&&right<=r)
{
s2+=a[pos];
}
return;
}
int mid=(left+right)/2;
tree_sum(left,mid,pos*2+1);
tree_sum(mid+1,right,pos*2+2);
}
void tree_plus(int left,int right,int num,int pos)
{
a[pos]+=s1;
if(left==right)return;
int mid=(left+right)/2;
if(num<=mid)tree_plus(left,mid,num,pos*2+1);
if(num>mid)tree_plus(mid+1,right,num,pos*2+2);
}
int main()
{
cin>>k>>n;
for(int j=0;j<=50000;j++)a[j]=0;
for(int i=1;i<=k;i++)
{
cin>>s1;
tree_plus(1,k,i,0);
}
for(int i=1;i<=n;i++)
{
cin>>x>>l>>r;
if(x==1)
{
cin>>s1;
for(int j=l;j<=r;j++)tree_plus(1,k,j,0);
}
if(x==2)
{
s2=0;
tree_sum(1,k,0);
cout<<s2<<endl;
}
}
}
帮帮蒟蒻,Orz