题目:点击打开链接
求余然后模拟
#include <stdio.h>
#include <string.h>
#define maxn 20005
char s[maxn], c[maxn];
void fun(int l, int r, int k)
{
int Move = k%(r-l+1), p;
for(int i = l;i <= r;i++){
p = i - l;
c[(p+Move)%(r-l+1)+l] = s[p+l];
//printf("%d\n", (p+Move)%(r-l+1)+l);
}
for(int i = l;i <= r;i++){
p = i;
s[p] = c[p];
//printf("%c\n", c[i]);
}
}
int main()
{
int m, l, r, k, i;
scanf("%s", s);
scanf("%d", &m);
for(i = 0;i < m;i++){
scanf("%d %d %d", &l, &r, &k);
fun(l-1, r-1, k);
}
puts(s);
}