#include<stdio.h>
#include<limits.h>
void preprocess(int node,int b,int e,long long int m[],long long int a[])
{
int mid;
if(b == e)
{
//printf("%d %d\n",node,b);
m[node] = a[b];}
else
{
mid = (b+e)>>1;
preprocess(2*node,b,mid,m,a);
preprocess(2*node+1,mid+1,e,m,a);
m[node]= m[2*node]+ m[2*node+1];
}
}
void preprocess1(int node,int b,int e,long long int m[],long long int a[],int x,int y,long long int value)
{
if(b==e && x<=b && b<=y)
m[node]+=value;
else if(b!=e)
{
int mid = (b+e)>>1;
preprocess1(2*node,b,mid,m,a,x,y,value);
preprocess1(2*node+1,mid+1,e,m,a,x,y,value);
m[node] = m[2*node]+m[2*node+1];
}
}
long long int query(int node,int b,int e,long long int m[],long long int a[],int i,int j)
{
int mid = (b+e)>>1;
int l=0 ;
int temp,p1,p2;
if(i>e || j<b)
return l;
if(b>=i && e<=j)
return m[node];
p1 = query(2*node,b,mid,m,a,i,j);
p2 = query(2*node+1,mid+1,e,m,a,i,j);
return p1+p2;
}
long long int min[600009];
long long int a[100009];
int main()
{
int t,j,i,n,q1,sq,eq,ch,p,q,v3,ll; //,*a;
long long int pp,v; //,*min;
char str[10],sh[2];
while(t--){
for(i=0;i<n;i++)
{
a[i] = 0;
}
preprocess(1,0,n-1,min,a);
for(i=0;i<q1;i++){
if(ll==0)
{
scanf("%d %d %lld",&p
,&q
,&v
); preprocess1(1,0,n-1,min,a,p-1,q-1,v);
}
if(ll==1)
{
pp = (query(1,0,n-1,min,a,p-1,q-1));
}
}
}
return 0;
}
I2luY2x1ZGU8c3RkaW8uaD4KI2luY2x1ZGU8bGltaXRzLmg+Cgp2b2lkIHByZXByb2Nlc3MoaW50IG5vZGUsaW50IGIsaW50IGUsbG9uZyBsb25nIGludCBtW10sbG9uZyBsb25nIGludCBhW10pCnsKICAgICBpbnQgbWlkOwppZihiID09IGUpCgl7CiAgICAgICAgLy9wcmludGYoIiVkICVkXG4iLG5vZGUsYik7CiAgICAgICAgbVtub2RlXSA9IGFbYl07fQplbHNlCgl7CgltaWQgPSAoYitlKT4+MTsKCXByZXByb2Nlc3MoMipub2RlLGIsbWlkLG0sYSk7CglwcmVwcm9jZXNzKDIqbm9kZSsxLG1pZCsxLGUsbSxhKTsKCW1bbm9kZV09IG1bMipub2RlXSsgbVsyKm5vZGUrMV07Cgl9Cn0KCgp2b2lkIHByZXByb2Nlc3MxKGludCBub2RlLGludCBiLGludCBlLGxvbmcgbG9uZyBpbnQgbVtdLGxvbmcgbG9uZyBpbnQgYVtdLGludCB4LGludCB5LGxvbmcgbG9uZyBpbnQgdmFsdWUpCnsKaWYoYj09ZSAmJiB4PD1iICYmIGI8PXkpCm1bbm9kZV0rPXZhbHVlOwoKZWxzZSBpZihiIT1lKQoJewoJaW50IG1pZCA9IChiK2UpPj4xOwoJCXByZXByb2Nlc3MxKDIqbm9kZSxiLG1pZCxtLGEseCx5LHZhbHVlKTsKICAgICAgICBwcmVwcm9jZXNzMSgyKm5vZGUrMSxtaWQrMSxlLG0sYSx4LHksdmFsdWUpOwogICAgICAgIG1bbm9kZV0gPSBtWzIqbm9kZV0rbVsyKm5vZGUrMV07Cgl9Cn0KCgpsb25nIGxvbmcgaW50IHF1ZXJ5KGludCBub2RlLGludCBiLGludCBlLGxvbmcgbG9uZyBpbnQgbVtdLGxvbmcgbG9uZyBpbnQgYVtdLGludCBpLGludCBqKQp7CmludCBtaWQgPSAoYitlKT4+MTsKaW50IGw9MCA7CmludCB0ZW1wLHAxLHAyOwoKaWYoaT5lIHx8IGo8YikKCXJldHVybiBsOwoJCmlmKGI+PWkgJiYgZTw9aikKCXJldHVybiBtW25vZGVdOwpwMSA9IHF1ZXJ5KDIqbm9kZSxiLG1pZCxtLGEsaSxqKTsKcDIgPSBxdWVyeSgyKm5vZGUrMSxtaWQrMSxlLG0sYSxpLGopOwpyZXR1cm4gcDErcDI7Cn0JCgoKbG9uZyBsb25nIGludCBtaW5bNjAwMDA5XTsKbG9uZyBsb25nICBpbnQgYVsxMDAwMDldOwoKCmludCBtYWluKCkKCQl7CgkJaW50IHQsaixpLG4scTEsc3EsZXEsY2gscCxxLHYzLGxsOyAgLy8sKmE7CgkJbG9uZyBsb25nIGludCBwcCx2OyAvLywqbWluOwoJCWNoYXIgc3RyWzEwXSxzaFsyXTsKCglzY2FuZigiJWQiLCZ0KTsKICAgICAgICAgICAgIAoJCQoJCgkKICAgIHdoaWxlKHQtLSl7CiAgICAgICAgICAgICAgIAoJCXNjYW5mKCIlZCAlZCIsJm4sJnExKTsKICAgIAoJCWZvcihpPTA7aTxuO2krKykKCQl7CiAgICAgICAgYVtpXSA9IDA7CiAgICAgICAgfQoKICAgICAgIAlwcmVwcm9jZXNzKDEsMCxuLTEsbWluLGEpOwogICAgCWZvcihpPTA7aTxxMTtpKyspewogICAgICAgICAgIHNjYW5mKCIlZCIsJmxsKTsKICAgICAgICAgICBpZihsbD09MCkKICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgc2NhbmYoIiVkICVkICVsbGQiLCZwLCZxLCZ2KTsKICAgICAgICAgICAgICAgICAgICAgICAgICBwcmVwcm9jZXNzMSgxLDAsbi0xLG1pbixhLHAtMSxxLTEsdik7CgkJCiAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgaWYobGw9PTEpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzY2FuZigiJWQgJWQiLCZwLCZxKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBwID0gKHF1ZXJ5KDEsMCxuLTEsbWluLGEscC0xLHEtMSkpOwoJICAgICAgICAgICAgICAgICAgICAgIAlwcmludGYoIiVsbGRcbiIscHApOwoJICAgICAgICAgICAgICAgICAgICAgICAgfSAgIAogICAgICAgICAgICAgICAgICAgICAgICAgfSAKICAgICAgICAgICAgICAgfQoJCQkKICAgICAgICAgICAgcmV0dXJuIDA7Cgl9Cg==