Проблема в том, что векторы l, r и k индексируются с 0, а не с 1.
Замените индексацию в векторах на индексацию с 0, а в вычислении индексов подстроки используй l[i] - 1 вместо l[i], а также k[i] - 1 вместо k[i] при вызове insert().
Например так
#include <iostream>
#include <vector>
#include <string>
using namespace std;
int main() {
string s;
int q;
cin >> s >> q;
vector<int> l(q), r(q), k(q);
for (int i = 0; i < q; ++i) {
cin >> l[i] >> r[i] >> k[i];
}
for (int i = q - 1; i >= 0; --i) {
string t = s.substr(l[i] - 1, r[i] - l[i] + 1);
s.erase(l[i] - 1, r[i] - l[i] + 1);
if (k[i] == 0) {
s = t + s;
} else {
s.insert(k[i] - 1, t);
}
}
cout << s << endl;
return 0;
}