Forsaken的数列
时间限制: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

输出

复制
369

备注: