问题 B: 简单的小游戏2

问题 B: 简单的小游戏2

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

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

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

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