http://codeforces.com/problemset/problem/598/A
一个字符串s以及m次操作,每次操作给定l、r、k,表示在区间[l,r]内依次把元素右移k次, 最后一位移到最前。
求m次操作后的字符串。
#include <iostream>
#include <cstdio>
#include <cstring>
#include <cmath>
using namespace std;
string s;
char ch[100005];
int l,r,k;
int n;
int main(){
cin >> s;
cin >> n;
while (n--){
cin >> l >> r >> k;
int len=r-l+1;
k=k%len;
for (int i=r-1;i>=l-1;i--){
ch[(i+1+k-l)%len+l-1]=s[i];
}
for (int i=r-1;i>=l-1;i--){
s[i]=ch[i];
}
}
cout << s << endl;
}