题目描述
给您一个字符串 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 。