Pagini recente » Cod sursa (job #2527883) | Cod sursa (job #3268344) | Cod sursa (job #493057) | Cod sursa (job #618129) | Cod sursa (job #2978112)
#pragma GCC optimize("Ofast")
#define LIBCXX_ENABLE_THREADS OFF
#include <bits/stdc++.h>
#include <ext/rope>
using namespace std;
using namespace __gnu_cxx;
FILE *in=fopen("secv8.in","r");
FILE *out=fopen("secv8.out","w");
int main()
{
#ifndef LOCAL
ios_base::sync_with_stdio(false);
cin.tie(0); cout.tie(0);
#endif // LOCAL
rope<int, allocator<int>> s;
int k, c; fscanf(in, "%d %d", &k, &c);
while(k--) {
char t; fscanf(in, " %c", &t);
if(t == 'I') {
int p, x; fscanf(in, "%d %d", &p, &x); p--;
s.insert(p, x);
s.insert(s.size() - p, x);
}
if(t == 'A') {
int p; fscanf(in, "%d", &p);
fprintf(out, "%d\n", s[p - 1]);
}
if(t == 'R') {
int l, r; fscanf(in, "%d %d", &l, &r);
l--; r--;
s = s.substr(0, l) + s.substr(s.size() - r - 1, r - l + 1) + s.substr(r + 1, s.size() - 2 * r - 2) + s.substr(l, r - l + 1) + s.substr(s.size() - l, l);
}
if(t == 'D') {
int l, r; fscanf(in, "%d %d", &l, &r);
l--; r--;
s.erase(s.size() - r - 1, r - l + 1);
s.erase(l, r - l + 1);
}
#ifdef LOCAL
cerr << "\t\tS: "; for(auto e : s) cerr << e << " "; cerr << endl;
#endif // LOCAL
}
s = s.substr(0, s.size() / 2);
for(auto e : s) fprintf(out, "%d ", e);
return 0;
}