#include<iostream>
#include<stdio.h>
#include<string.h>
#define NN 2500000 using namespace std; typedef long long LL;
struct node
{
LL l,r,sum,flag;
} N[NN]; void build(LL l,LL r,LL i)
{
LL mid=(l+r)>>1;
N[i].flag=0;
N[i].l=l;
N[i].r=r;
N[i].sum=0;
if(l==r)
{
scanf("%lld",&N[i].sum);
return ;
}
build(l,mid,i*2);
build(mid+1,r,i*2+1);
N[i].sum=N[i*2].sum+N[i*2+1].sum;
} void renew(LL i,LL l,LL r,LL k)
{
LL mid=(N[i].l+N[i].r)>>1;
if(N[i].l==l&&N[i].r==r)
{
N[i].flag+=k;
return ;
}
N[i].sum+=(r-l+1)*k;
if(mid<l) renew(i*2+1,l,r,k);
else if(mid>=r)renew(i*2,l,r,k);
else
{
renew(i*2,l,mid,k);
renew(i*2+1,mid+1,r,k);
}
} LL query(LL i,LL l,LL r)
{
LL mid=(N[i].l+N[i].r)>>1;
if(l==N[i].l&&r==N[i].r)
{
return N[i].sum+(r-l+1)*N[i].flag;
}
if(N[i].flag)
{
N[i*2].flag+=N[i].flag;
N[i*2+1].flag+=N[i].flag;
N[i].sum+=(N[i].r-N[i].l+1)*N[i].flag;
N[i].flag=0;
}
if(l>mid) return query(i*2+1,l,r);
else if(r<=mid) return query(i*2,l,r);
else
{
return query(i*2+1,mid+1,r)+query(i*2,l,mid);
}
} int main()
{
LL n,m,suzi,a,b,i;
char s[5];
while(scanf("%lld %lld",&n,&m)!=EOF)
{
build(1,n,1);
// prLLf("sdd=%lld\n",N[8].sum);
// return 0;
for(i=1; i<=m; i++)
{
scanf("%s",s);
// return 0;
if(s[0]=='C')
{
LL a,b,c;
scanf("%lld %lld %lld",&a,&b,&c);
renew(1,a,b,c);
}
else
{
LL a,b;
scanf("%lld %lld",&a,&b);
printf("%lld\n",query(1,a,b));
}
}
}
return 0;
}

最新文章

  1. [LeetCode] Excel Sheet Column Title 求Excel表列名称
  2. Cordova Ionic AngularJS
  3. Windows下Nginx+Tomcat整合的安装与配置
  4. iOS学习笔记---C语言第四天
  5. Windows下使用NCL(Cygwin模拟Linux环境)
  6. 【Bootstrap3.0建站笔记三】AspNetPager分页,每一列都可排序
  7. PuTTY 私钥&#39;putty/sshdss.c&#39; 多个信息泄露漏洞
  8. [转] 关于C++中模板中的typename和class的区别比较
  9. FastDFS+Nginx部署详细教程
  10. Token在android中的使用
  11. 2016 西普杯丶天津CTF预选赛(3/6)
  12. JAVA实现等腰三角形
  13. [Oracle]使用InstantClient访问Oracle数据库
  14. 3ds max 学习笔记(四)--创建物体
  15. Grafana+Prometheus打造springboot监控平台
  16. gitlab分支代码本地拉取及jenkins关联gitlab分支
  17. ES6知识整理(10)--class的继承
  18. 小程序util工具
  19. Python发送短信提醒
  20. XML和JSON优缺点

热门文章

  1. ZOJ - 3816 Generalized Palindromic Number dfs
  2. 关于内存 转载自http://blog.csdn.net/xluren/article/details/8150723
  3. Requests模拟登陆
  4. SGU104 二维dp
  5. Debian9初始配置
  6. 洛谷——P1560 [USACO5.2]蜗牛的旅行Snail Trails
  7. Linux最常用的命名
  8. Junit4 断言新方法
  9. 系统去掉 Android 4.4.2 的StatusBar和NavigationBar
  10. Intel MIC