#XMOJ7512. 钓鱼
钓鱼
说明
时间限制:1 Sec
内存限制:256 MB
输入文件:fish.in 输出文件:fish.out
我们在长度为 $N$ 的区间 $[0,N)$ 中钓鱼。
所有鱼都按照以下规则移动。
- 一条在时间 $t$ 位置 $x$ 面向左的鱼在时间 $t+1$ 时移动到位置 $x-1$,且不改变方向。特别的,$x=0$ 处的鱼(无法移动到位置 $x-1$)在同一位置向右转向。
- 一条在时间 $t$ 位置 $x$ 面向右的鱼在时间 $t+1$ 时移动到位置 $x+1$,且不改变方向。特别的,$x=N-1$ 处的鱼(无法移动到位置 $x+1$)在同一位置向左转向。
也就是说,如果鱼能移动到前面,就前进 $1$,如果不能移动,就原地转向。
最初,在 $t=0$ 时,钓鱼池中没有鱼。
给出了以下三种类型的查询,请按顺序处理。
1、$L$ $t$ $y$ $z$ —— $z$ 条鱼在时间 $t$ 的位置 $y$ 被释放到左侧。($z$ 鱼全部面向左)
2、$R$ $t$ $y$ $z$ —— $z$ 条鱼在时间 $t$ 的位置 $y$ 被释放到右侧。($z$ 鱼全部面朝右)
3、$C$ $t$ $y$ $z$ —— 输出时间 $t$ 区间 $[y,z)$ 内的鱼总数。
输入格式
第一行两个整数 $N,Q$,表示区间长度为 $N$,共有 $Q$ 个查询。
后续 $Q$ 行,第 $i$ 行的 $4$ 个整数 $x_i,t_i,y_i,z_i$ 表示一次查询,其中 $x_i$ 为 $L$、$R$、$C$ 中的一个表示查询的类型,$t_i,y_i,z_i$ 表示查询的参数,如题面描述。
输出格式
对每个 $x=C$ 的查询,输出一行,一个整数,表示答案。
样例
样例 1
10 3
R 1 2 1
L 2 5 1
C 3 4 5
2
样例 2
5 4
L 1 1 2
R 2 4 2
C 3 2 4
C 5 2 4
0
4
样例 3
10 10
C 1 3 8
L 2 1 2
R 3 7 3
C 4 1 5
C 5 0 6
L 6 2 3
R 7 3 5
C 8 2 10
R 9 7 1
L 10 6 1
0
0
2
10
数据范围
对于 20% 的数据,$N \le 100$,$Q \le 100$,当 $x=L$ 或 $x=R$ 时,$1 \le z_i \le 100$。
对于 100% 的数据:$1 \le N \le 2 \times 10^5$,$1 \le Q \le 8 \times 10^4$,$0 \le t_1 \lt t_2 \lt ... \lt t_Q \le 10^8$。
当 $x=L$ 或 $x=R$ 时,$0 \le y_i \lt N$,$1 \le z_i \le 10^8$
当 $x=C$ 时,$0 \le y_i \lt z_i \le N$。
相关
在下列比赛中: