问题描述 |
---|
给定m个整数的初始值A1、A2、...、Am,有以下两种类型操作: 1、把某一下标范围内的数字都加上一个给定的值; 2、在某一下标范围内计算数字的和 这两种类型的操作一共会执行q次。 |
输入描述 |
只有一组案例。 两个正整数m和q,表示数字的个数和操作的次数。(m<=100000, q<=100000) 然后有m个整数,表示数字的初始值A1、A2、...、Am。(-1e9<=Ai<=1e9) 接下来有q行数据,每行数据表示一次操作,两种操作的说明如下: 形如“P a b c”的操作表示把Aa到Ab的所有元素都增加c。(1<=a<=b<=m, -10000<=c<=10000) 形如“Q a b”的操作表示计算Aa到Ab的所有元素的总和,并输出。(1<=a<=b<=m) |
输出描述 |
针对每个Q操作指令,输出计算结果,然后换行。 |
样例输入复制样例 |
10 5 1 2 3 4 5 6 7 8 9 10 Q 4 4 Q 1 10 Q 2 4 P 3 6 3 Q 2 4 |
样例输出 |
4 55 9 15 |
提示说明 |
32位的int不够存总和,64位的int用long long |
相关 |