#import<iostream>
using A=long;using namespace std;A n,q,t,L,R,a['六'],d['六'];A f(A x=1,A l=1,A r=n){A y=l+r>>1,z=min(R,r)-max(L,l)+1;return l>R|L>r?0:(a[x]+=z*t,L<=l&r<=R?d[x]+=t,a[x]:z*d[x]+f(x+x,l,y)+f(x+x+1,y+1,r));}main(){for(cin>>n>>q;R<n;f())L=++R,cin>>t;for(;q--;t<2?cin>>t,f():(t=0,cout<<f()<<'\n',0))cin>>t>>L>>R;}
用c++14可AC,共323B。