思路:
一年前学的三步翻转。。一年后才用上。!不过暴力好像也过了!
#include <iostream>
#include <stdlib.h>
#include <string.h>
#include <stdio.h>
using namespace std;
void reverse(char *left,char *right)
{
while(left<right)
{
char temp=*left;
*left=*right;
*right=temp;
right--;
left++;
}
}
void Leftmove(char *s,int len,int m)
{
m%=len;
m=len-m;
m%=len;
// cout<<m<<endl;
reverse(s,s+len-1);
reverse(s,s+len-m-1);
reverse(s+len-m,s+len-1);
}
char str[100005];
int main()
{
gets(str);
int k,n;
scanf("%d",&n);
while(n--)
{
int l,r;
scanf("%d%d%d",&l,&r,&k);
Leftmove(&str[l-1],r-l+1,k);
}
puts(str);
}