Reverse and Rotate
题目描述
给定一个字符串 $S$ 和 $n$ 次操作,每次操作为以下 $3$ 种形式之一:
1. `< x` 表示将 $S$ 向左循环移动 $x$ 位。例如:$\mathtt{abcde}$ 执行 `< 2` 后变成 $\mathtt{cdeab}$。
2. `> x` 表示将 $S$ 向右循环移动 $x$ 位。例如:$\mathtt{abcde}$ 执行 `> 2` 后变成 $\mathtt{deabc}$。
3. `rev` 表示将 $S$ 翻转。例如:$\mathtt{abcde}$ 执行 `rev` 后变成 $\mathtt{edcba}$。
求 $S$ 在**依次**执行这 $n$ 次操作后得到的字符串 $S'$。
注:对于 $S=s_0s_1\cdots s_{k-1}$,将其向左循环移动 $x$ 位,会变成 $s_{-x}S_{-x+1}\cdots S_{-x+k-1}$;向右循环移动 $x$ 位,会变成 $s_{x}S_{x+1}\cdots S_{x+k-1}$。对于 $x\equiv y\pmod k$,有 $s_x=s_y$。
输入输出格式
输入格式
第一行一个字符串 $S$。
第二行一个整数 $n$。
接下来 $n$ 行,每行一个操作。
输出格式
一行一个字符串 $S'$,表示**依次**执行 $n$ 次操作后得到的字符串。
输入输出样例
输入样例 #1
abcde
3
> 2
rev
< 2
输出样例 #1
aedcb
说明
**【样例 1 解释】**
- 原字符串为 $\mathtt{abcde}$;
- 第一次操作后,字符串变为 $\mathtt{deabc}$;
- 第二次操作后,字符串变为 $\mathtt{cbaed}$;
- 第三次操作后,字符串变为 $\mathtt{aedcb}$。
**【数据规模与约定】**
记 $|S|$ 表示字符串 $S$ 的长度。
| 测试点编号 | 特殊性质 |
| :----------: | :----------: |
| $1\sim3$ | $\vert S\vert,n,x \le 1000$ |
| $4$ | 没有 `rev` 操作 |
| $5$ | $S=\mathtt{aa...abb...b}$ |
| $6\sim10$ | 无 |
对于 $100\%$ 的数据,$1 \le |S|,n \le 10^6$,$0 \le x \le 10^9$,$S$ 仅由小写字母组成。