Pagini recente » Cod sursa (job #1517271) | Cod sursa (job #941485) | Cod sursa (job #1941) | Rating Traian Basescu (basescu) | Cod sursa (job #3251108)
#include<bits/stdc++.h>
#include<ext/rope>
#define cin fin
#define cout fout
using namespace std;
using namespace __gnu_cxx;
ifstream fin("secv8.in");
ofstream fout("secv8.out");
rope <int> v,rv,tmp;
int main(){
int n,t;
cin>>n>>t;
for(int i = 0;i < n;i++){
char x;
cin>>x;
if(x == 'I'){
int a,b,ra;
cin>>a>>b;
a--;
ra = (int)v.size() - a;
//cout<<"aa:"<<ra<<' ';
v = v.substr(0,a) + b + v.substr(a,(int)v.size() - a);
rv = rv.substr(0,ra) + b + rv.substr(ra,(int)v.size() - ra);
}else if(x == 'A'){
int nr;
cin>>nr;
nr--;
cout<<v[nr]<<'\n';
}else if(x == 'D'){
int a,b;
cin>>a>>b;
a--;b--;
int ra = (int)v.size() - a - 1;
int rb = (int)v.size() - b - 1;
v = v.substr(0,a) + v.substr(b + 1,(int)v.size() - (b + 1));
rv = rv.substr(0,rb) + rv.substr(ra + 1,(int)rv.size() - (ra + 1));
}else{
///????
int a,b;
cin>>a>>b;
a--;b--;
int ra = (int)v.size() - 1 - a;
int rb = (int)v.size() - 1 - b;
tmp = v.substr(0,a) + rv.substr(rb,ra + 1 - rb) + v.substr(b + 1,(int)v.size() - (b + 1));
rv = rv.substr(0,rb) + v.substr(a,b + 1 - a) + rv.substr(ra + 1,(int)rv.size() - (ra + 1));
v = tmp;
}
/*for(auto i:v){
cout<<i<<' ';
}
cout<<'\n';*/
}
for(auto i:v){
cout<<i<<' ';
}
cout<<'\n';
return 0;
}