U726162 停止符
题目背景
【本题已于9月9日12:00补充2组更强样例】
题目描述
给定一个长度为 $n$、仅包含字符 `N` 与 `H` 的字符串,以及 $m$ 次操作。
一次**行为**由起点、行走方向和停止符确定。它从指定位置开始,反复执行:
1. 记下当前位置翻转前的字符,再将它翻转(`N` 变为 `H`,`H` 变为 `N`);
2. 若翻转前的字符等于停止符,或者沿指定方向再走一步会超出字符串边界,则在完成本次翻转后结束当前行为;
3. 否则沿指定方向走一步并继续。
每次操作给出 $op,x,k$,表示以位置 $x$ 为起点,连续执行 $k$ 次下列行为:
| $op$ | 方向 | 停止符 |
|---:|---|---|
| $1$ | 向右 | `N` |
| $2$ | 向右 | `H` |
| $3$ | 向左 | `N` |
| $4$ | 向左 | `H` |
操作按输入顺序进行。请输出所有操作结束后的字符串。
输入格式
第一行输入两个整数 $n,m$。
第二行输入一个长度为 $n$ 的字符串 $s$,保证只包含 `N` 和 `H`。
接下来 $m$ 行,每行输入三个整数 $op,x,k$,含义见题目描述。
输出格式
输出一行一个长度为 $n$ 的字符串,表示全部操作结束后的结果。
说明/提示
初始字符串以及每次操作后的字符串依次为:
```text
HHNNN
HHNNN
NHNNN
NHNNH
HHNNH
HNNHH
```
判断当前位置是否为停止符时使用翻转前的字符;即使满足停止条件,当前位置仍会完成翻转。
对于所有数据:
$$
1\le n,m\le10^5,\qquad 1\le op\le4,\qquad 1\le x\le n,
$$
$$
0\le k\le10^{18}.
$$
同一次操作中的后一次行为从前一次行为结束后的字符串状态继续执行。