Pagini recente » Cod sursa (job #1031090) | Cod sursa (job #2135162) | Algoritmiada 2012 - Clasament | Cod sursa (job #32364) | Cod sursa (job #2751888)
#include <iostream>
#include <fstream>
#include <bits/stdc++.h>
using namespace std;
ifstream f("secv8.in");
ofstream g("secv8.out");
void insereaza(int k, int e, list<int> &S){
list<int>::iterator it=S.begin();
advance(it, k-1);
S.insert(it, e);
}
void acceseaza(int k, list<int> &S){
list<int>::iterator it=S.begin();
advance(it, k-1);
g<<*it<<"\n";
}
void inverseaza(int i, int j, list<int> &S){
list<int>::iterator st, dr;
st=S.begin();
dr=S.begin();
advance(st, i-1);
advance(dr, j);
reverse(st, dr);
}
void sterge(int i, int j, list<int> &S){
list<int>::iterator st, dr;
st=S.begin();
dr=S.begin();
advance(st, i-1);
advance(dr, j);
S.erase(st, dr);
}
int main(){
int n,k,e,i,j;
bool r;
char ch;
list <int> S;
f>>n;
f>>r;
for(int p=0; p<n; p++){
f>>ch;
if(ch=='I'){
f>>k>>e;
insereaza(k,e,S);
}
if(ch=='A'){
f>>k;
acceseaza(k,S);
}
if(ch=='R'){
f>>i>>j;
inverseaza(i,j,S);
}
if(ch=='D'){
f>>i>>j;
sterge(i,j,S);
}
}
for(auto it=S.begin(); it!=S.end(); ++it){
g<<*it<<" ";
}
f.close();
g.close();
return 0;
}