问题 B: 简单的小游戏2

问题 B: 简单的小游戏2

时间限制: 2 Sec  内存限制: 256 MB
提交: 192  解决: 118
[状态] [讨论版] [提交] [命题人:]
题目描述
给您一个字符串 s ,您需要处理 m 个查询。每个查询由两个基于 1 的索引 li 、 ri 和整数 ki 描述。这意味着您应该循环移动子串 s[li... ri] ki 次。查询应按照给出的顺序一个接一个地处理。

循环移动(旋转)的一个操作相当于将最后一个字符移动到第一个字符的位置,并将所有其他字符向右移动一个位置。

例如,如果字符串 s 是 abacaba,而查询是 l1 = 3, r1 = 6, k1 = 1 ,那么答案就是 abbacaa。如果之后我们处理查询 l2 = 1, r2 = 4, k2 = 2 ,那么我们将得到字符串 baabcaa 。
输入
输入的第一行包含初始状态的字符串 s ( 1 ≤ |s| ≤ 10 000 ),其中 |s| 代表 s 的长度。它只包含小写英文字母。
第二行包含一个整数 m ( 1 ≤ m ≤ 300 ) - 查询次数。

接下来 m 行中的第 i 行包含三个整数 li 、 ri 和 ki ( 1 ≤ li ≤ ri ≤ |s|, 1 ≤ ki ≤ 1 000 000 ) --第 i 个查询的描述。
输出
打印处理所有 m 查询后得到的字符串 s 。
样例输入 Copy
abacaba
2
3 6 1
1 4 2
样例输出 Copy
baabcaa
提示
样例已经在题目中解释了