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$|