C. 游戏
题目描述
小W是最近迷上了一款游戏。
在这个游戏里面,他一共拥有 n 个角色,编号分别是 1,2,…,n。在游戏里面角色一共有 m+1 等级,分别是 0,1,2,…,m,等级是由经验值决定的。形式化的,游戏有 m 个参数 a1,a2,…,am,满足 a1<a2<a3<⋯<am。若某个角色的经验值是 x,那么他的等级就是满足 x≥ai 的最大的 i,(当 x<a1 时是 0)。
现在小W可以干两件事情:
- 打怪:带上编号在某一个区间 [l,r] 内所有角色去打怪,这样结束之后这些角色都可以得到 x 的经验值
- 氪金:充值之后把编号为 p 的角色的经验值魔改为 x。
小W不时的想要估算自己的战斗力,他会给出一些询问,每个询问给出 [l,r],他想要知道编号在 [l,r] 区间内的所有角色的等级的和。
输入格式
第一行三个整数 n,m,q。
第二行 m 个整数,表示 a1,a2,…,am。
第三行 n 个整数,表示每个角色初始的经验值。
接下来 q 行,每行第一个数表示 type:
- type=1:打怪,后面接 3 个整数,表示 l,r,x。
- type=2:氪金,后面接 2 个整数,表示 p,x。
- type=3:后面接 2 个整数 l,r,表示一组询问。
输出格式
输出一些行,每行一个整数,表示第 i 个询问的答案。
样例1
input
5 5 10
2 4 6 8 10
1 1 1 1 1
3 1 5
1 1 5 1
3 1 5
1 1 4 1
1 2 5 1
3 2 4
3 1 5
2 3 100
3 1 5
3 3 3
output
0
5
6
8
11
5
限制与约定
对于 30% 的数据,n,q≤1000。
对于另外 5% 的数据,不存在 type=1 和 type=2。
对于另外 10% 的数据,不存在 type=1。
对于另外 15% 的数据,不存在 type=2。
对于 100% 的数据,n,q≤105,m≤10。
时间限制:1s
空间限制:512MB