bzoj#P1842. 网络游戏

网络游戏

题目背景

TT 是个富甲一方的大富豪。作为一个富有激情和创造力的新时代青年,他早做腻了一般的买卖,决定顺应时代潮流,开一家网络公司。由于他从小就热爱网络游戏,所以 TT 决定把网络游戏作为他的第一个经营项目。

由于 TT 的制作团队相当强大,所以 TT 很快就开发出了一个绝对能盖过暴雪出的一堆游戏的的超牛网络游戏,一夜之间风靡全球,TT 也再次发了一笔财。当然 TT 对钱并不感兴趣,他更感兴趣的是游戏本身。

题目描述

TT 的网络游戏会根据玩家的各方面给玩家一个实力积分。TT 最喜欢的做的事情是选出一些有代表性的玩家,然后按一种特别的顺序排成一个序列,然后调查连续的一段中积分不超过 VV 的玩家有多少个,以得知这一片玩家是否实力太弱。当然这个序列是会经常改变的,TT 经常会把看不顺眼的玩家踢掉、在中间加入一个玩家。并且,玩家的积分也是经常会变的。

刚开始的时候,由于 TT 选的人不多,这个序列用他的开发团队写的一个简单程序还可以勉强维护。但人一多起来,TT 就有些觉得不爽了,所以他决定请你给他写个程序来解决这个问题。

输入格式

输入文件的第一行包含两个整数 nnQQnn 代表一开始 TT 所选玩家个数,QQ 表示 TT 的操作数。

接下来一行包含 nn 个整数,表示一开始 TT 选的各个玩家的积分。

接下来的 QQ 行,每行第一个整数 oo 表示本次的操作类型:

  • o=0o=0,则接下来三个整数 a,b,ca,b,c 表示 TT 询问第 aa 个人到第 bb 个人之间积分不超过 cc 的有多少个。

  • o=1o=1,则接下来两个整数 p,vp,v 表示 TT 在第 pp 个人后面插入了一个积分为 vv 的玩家。若 p=0p=0,则表示将该玩家插在序列开头。

  • o=2o=2,则接下来一个整数 pp 表示 TT 将第 pp 个人从序列中删除。

  • o=3o=3,则接下来两个整数 p,vp,v 表示 TT 将第 pp 个玩家的积分更新为 vv

输出格式

对于每个 o=0o=0 的操作,输出一行包含一个整数,表示该问题的答案。

5 8
10 2 6 1 5 
1 1 7
3 5 5
2 5
0 3 5 8
1 2 7
0 2 5 10
0 3 6 2
2 3 

3
4
1 

提示

对于 20%20\% 的数据 n10000n\le 10000Q10000Q\le 10000

对于 100%100\% 的数据 n105n\le 10^5Q105Q\le 10^5,所有输入整数在 maxlongint 以内。

题目来源

2008湖南省队集训By刘鹰