T412500 SFLS 的作业柜
题目背景
SFLS 每一个教室外都有一个作业柜,Ziven 同学觉得这些作业柜太土了,于是自己发明了一个犇犇作业柜。
题目描述
犇犇作业柜的大小为 $N \times N$。对于任意 $1 \leq i,j \leq N$,如果 $S_{i,j}$ 是 `1`,表示该处有作业本,如果是 `0`,则没有。
犇犇作业柜有一个重力系统,每个格子与上下左右四个格子均是联通的。如果一本书下面是空的,它就会掉下去,直到碰到底座或碰到另一本书。
Ziven 开启了重力系统。为了检测重力系统是否有效,他决定将柜子转动 $Q$ 次。对于第 $i$ 次操作,如果 $opt_i$ 是 `R`,则往右转动一次;如果是 `L`,则往左转一次。
不幸的是,每转动一次,会有一位老师来第 $x_i$ 行 $y_i$ 列取作业本,如果有作业本,老师将会抱走作业(拿走后上面的书会随重力下降),否则老师会认为是 Ziven 搞坏了作业柜从而对 Ziven 感到失望。
Ziven 想让你把操作之后的犇犇作业柜中是否有作业本的情况告诉他,方便之后查看重力系统是否正常运行。同时,请输出老师对 Ziven 失望的总次数。
输入格式
输入来自标准输入,保证所有输入的数为整数。
第一行给你两个正整数 $N$ 和 $Q$,分别表示作业柜的大小和转动多少次。
接下来 $N$ 行,每行一个字符串 $S_i$ 表示作业分布情况,保证 $S_{i,j}$ 为 `0` 或 `1`。
接下来的 $Q$ 行,每行一个字符 $opt_i$ 和两个正整数 $x_i$ 和 $y_i$,保证 $opt_{i}$ 为 `L` 或 `R`。
输出格式
**最终**输出一个矩阵表示翻转后每一行每一列是否有作业。
有则输出 $1$,没有则输出 $0$。
在矩阵之后输出老师对 Ziven 失望的总次数。
说明/提示
#### 样例说明
一开始,所有书因重力落下。
```plain
000000
000000
000101
001101
101101
111111
```
先向右转一次,变为:
```plain
100000
100000
110000
111000
111100
111100
```
老师拿走第 $4$ 行 $2$ 列的书(书会随重力下降),变为:
```plain
100000
100000
100000
111000
111100
111100
```
最后,向左转一次,变为:
```plain
000000
000000
000011
000111
000111
111111
```
老师要拿走第 $1$ 行 $1$ 列的书,可是没有,于是老师对 Ziven 感到 $1$ 次失望。
对于旋转的具体解释:
**右转:即为原本的右面变成了旋转之后的的底面,原本的底面,变成了旋转之后的左面。左转同理,转的方向相反。**
#### 测试点说明
对于 $100\%$ 的数据,保证 $1 \le x_i,y_i \leq N \leq 10^3$,$1 \leq Q \le 2 \times 10^5$。
本题共计 $20$ 个数据点,**采用捆绑测试**,子任务及数据点分配如下:
|子任务编号|特殊性质|分值|
| :--------: | :-----: | :--: |
|$1$|$Q = 1$|$10$|
|$2$|$N \leq 100$,$1 \leq Q \leq 10^3$|$30$|
|$3$|无特殊性质|$60$|