#P10058. Reverse and Rotate

    ID: 10016 远端评测题 1000ms 512MiB 尝试: 0 已通过: 0 显示难度普及 上传者: 标签>洛谷原创O2优化洛谷月赛

Reverse and Rotate

题目描述

给定一个字符串 SS 和 nn 次操作,每次操作为以下 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 次操作后得到的字符串 S′S'。

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

输入格式

第一行一个字符串 SS。

第二行一个整数 nn。

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

输出格式

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

abcde
3
> 2
rev
< 2
aedcb

提示

【样例 1 解释】

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

【数据规模与约定】

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

测试点编号 特殊性质
1∼31\sim3 ∣S∣,n,x≤1000\vert S\vert,n,x \le 1000
44 没有 rev 操作
55 S=aa...abb...bS=\mathtt{aa...abb...b}
6∼106\sim10 无

对于 100%100\% 的数据,1≤∣S∣,n≤1061 \le |S|,n \le 10^6,0≤x≤1090 \le x \le 10^9,SS 仅由小写字母组成。