Pagini recente » Cod sursa (job #1963277) | Cod sursa (job #2867245) | Cod sursa (job #1866679) | Cod sursa (job #861188) | Cod sursa (job #363783)
Cod sursa(job #363783)
#include <vector>
#include <fstream>
using namespace std;
unsigned int vec[250001];
unsigned int len=0;
void Insert(int k,int e){
for(int i=len+1;i>=k;i--){
vec[i]=vec[i-1];
}
len++;
vec[k]=e;
}
void Delete(int beg,int end){
for(int i=0;i<end-beg+1;i++){
vec[beg+i]=vec[end+i+1];
}
len-=end-beg+1;
}
int Acess(int k){
return vec[k];
}
void Reverse(int beg,int end){
for(int i=0;i<end-beg;i++){
int tmp=vec[beg+i];
vec[beg+i]=vec[end-i];
vec[end-i]=tmp;
}
}
int main(){
int nr,hr,op1,op2;
char op;
fstream fin("secv8.in",ios::in);
fstream fout("secv8.out",ios::out);
fin>>nr>>hr;
for(int i=0;i<nr;i++){
fin>>op;
switch (op){
case 'I':
fin>>op1>>op2;
Insert(op1,op2);
break;
case 'A':
fin>>op1;
fout<<Acess(op1)<<endl;
break;
case 'R':
fin>>op1>>op2;
Reverse(op1,op2);
break;
case 'D':
fin>>op1>>op2;
Delete(op1,op2);
break;
default:
break;
}
}
for(unsigned int i=1;i<=len;i++){
fout<<vec[i]<<" ";
}
getchar();
}