时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 512 M,其他语言1024 M
64bit IO Format: %lld
题目描述
Forsaken刚学了线段树,他觉得这个数据结构非常强。Forsaken是一个勤奋好学的ACMer,现在他遇到一个问题,不知道能不能用线段树解决,于是他就来请教你了。
给定一个长度为

的序列,需要支持三种操作。
第一种操作格式为

,表示在

这个位置加入一个值为

的新元素(注意加入新元素之后序列长度和部分元素的位置会发生变化)。
第二种操作格式为

,表示当前序列中

到

区间的每个元素都加上

。
第三种操作格式为

,表示求当前序列中

到

区间的元素和。
输入描述:
第一行一个整数

。
第二行

个整数

。
第三行一个整数

,表示操作的次数。
接下来

行每行的输入为题目给定三种操作之一。
输出描述:
对于每个
操作输出一个整数,保证至少有一个
操作。
示例1
输入
复制
8
30 10 60 1 35 46 92 69
3
1 3
2 4 9 27
3 4 8
备注: