小 L 的字符串学习的特别好,他时常喜欢去思索各种关于字符串的难题。
今天他就在思考一道难题,因为受到位运算的启发,他也想把字符串支持 << 左移, >> 右移,于是他定义一个字符串 s 。
左移操作就是把最左边的字符放到字符串的最右边,例如
<< abcd
的结果为 bcda ,
执行一次右移操作是把最右边的字符放到字符串最左边,例如
>> dcab
的结果为 bdca 。
同时,他还想支持一种字符串的翻转操作 'R' ,就是将字符串倒序排列,例如
对字符串 cbad 做R操作的结果为 dabc 。
现在,小 L 就想开始玩起来,他先想好一个初始的字符串 s ,然后制定 n 种操作的顺序。
每种操作包括:
1. << x 将字符串 s 左移 x 位。
2. >> x 将字符串 s 右移 x 位。
3. R 将字符串 s 进行翻转操作。
这个对于小 L 来说有点过于困难了,他想要精通计算机的你帮助他计算出最终的字符串 s'。
第一行一个字符串 s ,表示初始的字符串。
第二行一个整数 n ,表示操作的数量。
接下来 n 行,每行一种对于字符串的操作。
输出最终操作完得到的字符串 s' ,表示依次进行 n 次操作后得到的字符串。
acdeab 5 << 2 R >> 2 R << 3
cdeaba
abdiejk 6 R >> 5 >> 2 << 7 R << 4
ejkabdi
记 |s| 表示字符串 s 的长度。
测试点编号 特殊性质
1~3 |s|,n,x <= 1000
4 没有 R 操作
5 s = aaa...abb...b
6~10 无
对于100%的数据,1 <= |s|,n <= 10^6, 0 <= x <= 10^9
奇遇编程
2024年青岛市城阳区“区长杯”初中组第二题