【題目敘述】https://codeforces.com/problemset/problem/598/B
【Tag】字串
【sample input】
abacaba
2
3 6 1
1 4 2
- abacaba
- abbacaa (3 6 1)
- abbacaa
- aabbcaa (1 4 2 – #1)
- baabcaa (1 4 2 – #2)
#include <iostream>
#include <string>
using namespace std;
int main() {
ios_base::sync_with_stdio(0);
cin.tie(0);
string s;
cin >> s;
int m;
cin >> m;
while (m--) {
int l, r, k;
cin >> l >> r >> k;
l--;
r--;
string s1 = s.substr(l, r - l + 1);
int sz = (int)s1.size();
//先取餘數,減少運算次數
k = k % sz;
string s2 = s1.substr(sz - k, k);
s2 = s2 + s1.substr(0, sz - k);
s = s.substr(0, l) + s2 + s.substr(r+1, s.size() - r);
}
cout << s << "\n";
return 0;
}