UOJ Logo

NOI.AC

1S 512MB

#38. 游戏

统计

C. 游戏

题目描述

小W是最近迷上了一款游戏。

在这个游戏里面,他一共拥有 n 个角色,编号分别是 1,2,,n。在游戏里面角色一共有 m+1 等级,分别是 0,1,2,,m,等级是由经验值决定的。形式化的,游戏有 m 个参数 a1,a2,,am,满足 a1<a2<a3<<am。若某个角色的经验值是 x,那么他的等级就是满足 xai 的最大的 i,(当 x<a1 时是 0)。

现在小W可以干两件事情:

  1. 打怪:带上编号在某一个区间 [l,r] 内所有角色去打怪,这样结束之后这些角色都可以得到 x 的经验值
  2. 氪金:充值之后把编号为 p 的角色的经验值魔改为 x

小W不时的想要估算自己的战斗力,他会给出一些询问,每个询问给出 [l,r],他想要知道编号在 [l,r] 区间内的所有角色的等级的和。

输入格式

第一行三个整数 nmq

第二行 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,q1000

对于另外 5% 的数据,不存在 type=1type=2

对于另外 10% 的数据,不存在 type=1

对于另外 15% 的数据,不存在 type=2

对于 100% 的数据,n,q105,m10

时间限制:1s

空间限制:512MB

下载

样例数据下载