Pagini recente » Cod sursa (job #408559) | Cod sursa (job #246900) | Cod sursa (job #1907051) | Cod sursa (job #1887460) | Cod sursa (job #2978106)
#pragma GCC optimize("Ofast")
#define LIBCXX_ENABLE_THREADS OFF
#include <bits/stdc++.h>
#include <ext/rope>
using namespace std;
using namespace __gnu_cxx;
#ifndef LOCAL
ifstream in("secv8.in");
ofstream out("secv8.out");
#define cin in
#define cout out
#endif // LOCAL
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; cin >> k >> c;
while(k--) {
char t; cin >> t;
if(t == 'I') {
int p, x; cin >> p >> x; p--;
s.insert(p, x);
s.insert(s.size() - p, x);
}
if(t == 'A') {
int p; cin >> p;
cout << s[p - 1] << '\n';
}
if(t == 'R') {
int l, r; cin >> 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; cin >> l >> r; l--; r--;
s.erase(s.size() - r, 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) cout << e << " "; cout << '\n';
return 0;
}