#P10058. Reverse and Rotate

Reverse and Rotate

题目描述

给定一个字符串 SSnn 次操作,每次操作为以下 33 种形式之一:

  1. < x 表示将 SS 向左循环移动 xx 位。例如:abcde\mathtt{abcde} 执行 < 2 后变成 cdeab\mathtt{cdeab}

  2. > x 表示将 SS 向右循环移动 xx 位。例如:abcde\mathtt{abcde} 执行 > 2 后变成 deabc\mathtt{deabc}

  3. rev 表示将 SS 翻转。例如:abcde\mathtt{abcde} 执行 rev 后变成 edcba\mathtt{edcba}

SS依次执行这 nn 次操作后得到的字符串 SS'

注:对于 S=s0s1sk1S=s_0s_1\cdots s_{k-1},将其向左循环移动 xx 位,会变成 sxSx+1Sx+k1s_{-x}S_{-x+1}\cdots S_{-x+k-1};向右循环移动 xx 位,会变成 sxSx+1Sx+k1s_{x}S_{x+1}\cdots S_{x+k-1}。对于 xy(modk)x\equiv y\pmod k,有 sx=sys_x=s_y

输入格式

第一行一个字符串 SS

第二行一个整数 nn

接下来 nn 行,每行一个操作。

输出格式

一行一个字符串 SS',表示依次执行 nn 次操作后得到的字符串。

abcde
3
> 2
rev
< 2
aedcb

提示

【样例 1 解释】

  • 原字符串为 abcde\mathtt{abcde}
  • 第一次操作后,字符串变为 deabc\mathtt{deabc}
  • 第二次操作后,字符串变为 cbaed\mathtt{cbaed}
  • 第三次操作后,字符串变为 aedcb\mathtt{aedcb}

【数据规模与约定】

S|S| 表示字符串 SS 的长度。

测试点编号 特殊性质
131\sim3 S,n,x1000\vert S\vert,n,x \le 1000
44 没有 rev 操作
55 S=aa...abb...bS=\mathtt{aa...abb...b}
6106\sim10

对于 100%100\% 的数据,1S,n1061 \le |S|,n \le 10^60x1090 \le x \le 10^9SS 仅由小写字母组成。