#include<iostream>
#include<math.h>
using namespace std;
#include<string>
#include<iostream>
using namespace std;
class vector{
string* tab;
int capacity;
int size;
public:
vector(int a=4,int b=0,string c="")
{
capacity=a;
size=b;
tab=new string[a];
for(int i=0;i<b;i++)
{
tab[i]=c;
}
}
vector(vector &x)
{
capacity=x.capacity;
size=x.size;
tab=new string[x.capacity];
for(int i=0;i<x.capacity;i++)
{
tab[i]=x.tab[i];
}
}
~vector()
{
delete[] tab;
}
void add(string x)
{
if(capacity>size)
{
tab[size]=x;
size++;
}
else
{
capacity=capacity*2;
string* tab2=new string[capacity];
for(int i=0;i<size;i++)
{
tab2[i]=tab[i];
}
delete[] tab;
tab=tab2;
tab[size]=x;
size++;
}
}
int getSize()
{
return size;
}
void resize(int s)
{
if(capacity>=s)
{
for(int i=size;i<s;i++)
{
tab[i]="";
}
size=s;
}
else
{
while(capacity<s)
capacity=capacity*2;
string* tab2=new string[capacity];
for(int i=0;i<size;i++)
{
tab2[i]=tab[i];
}
delete[] tab;
tab=tab2;
for(int i=size;i<s;i++)
{
tab[i]="";
}
size=s;
}
}
void clear()
{
size=0;
}
void insert(int i,string x)
{
if(i<=size)
{
if(size<capacity)
{
for(int j=size-1;j>=i;j--)
{
tab[j+1]=tab[j];
}
tab[i]=x;
size++;
}
else
{
capacity=capacity*2;
string* tab2=new string[capacity];
for(int j=0;j<size;j++)
{
tab2[j]=tab[j];
}
delete[] tab;
tab=tab2;
for(int j=size-1;j>=i;j--)
{
tab[j+1]=tab[j];
}
tab[i]=x;
size++;
}
}
}
void erase(int i)
{
if(i<=size&&size>0)
{
for(int j=i;j<size-1;j++)
{
tab[j]=tab[j+1];
}
size--;
}
}
string &operator[](int x)
{
if(x>=size)
return tab[size-1];
else
return tab[x];
}
vector &operator=(vector x)
{
capacity=x.capacity;
size=x.size;
delete[] tab;
tab=new string[capacity];
for(int i=0;i<size;i++)
{
tab[i]=x.tab[i];
}
}
friend ostream& operator<<(ostream &stream, vector &A)
{
for(int i=0;i<A.size;i++)
{
stream << A.tab[i];
stream << " ";
}
return stream;
}
friend istream& operator>>(istream &stream, vector &A)
{
for(int i=0;i<A.size;i++)
{
stream >> A.tab[i];
}
return stream;
}
};
int main()
{
int z, a, x;
string y;
string s;
cin >> z;
while (z--)
{
vector V;
cin >> a;
while (a--)
{
cin >> s;
//cout << s << endl;
switch(s[0])
{
case 'a':
cin >> y;
V.add( y );
break;
case 'i':
{
cin >> x >> y;
V.insert( x, y );
break;
}
case 'e':
{
cin >> x;
V.erase( x );
break;
}
case 'c':
V.clear();
break;
case 'r':
int r;
cin >> r;
V.resize(r);
break;
case 's': //set i size
if (s[1]=='i') { cout << V.getSize() << endl; break; }
cin >> x >> y;
if (V.getSize()==0) break;
V[x] = y;
break;
case 'g':
cin >> x;
if (V.getSize()==0) break;
cout << V[x] << endl;
break;
case 'p':
cout << V << endl;
break;
};
}
}
return 0;
}
I2luY2x1ZGU8aW9zdHJlYW0+CiNpbmNsdWRlPG1hdGguaD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKI2luY2x1ZGU8c3RyaW5nPgojaW5jbHVkZTxpb3N0cmVhbT4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKY2xhc3MgdmVjdG9yewoJc3RyaW5nKiB0YWI7CglpbnQgY2FwYWNpdHk7CglpbnQgc2l6ZTsKCXB1YmxpYzoKCQl2ZWN0b3IoaW50IGE9NCxpbnQgYj0wLHN0cmluZyBjPSIiKQoJCXsKCQkJY2FwYWNpdHk9YTsKCQkJc2l6ZT1iOwoJCQl0YWI9bmV3IHN0cmluZ1thXTsKCQkJZm9yKGludCBpPTA7aTxiO2krKykKCQkJewoJCQkJdGFiW2ldPWM7CgkJCX0KCQl9CgkJdmVjdG9yKHZlY3RvciAmeCkKCQl7CgkJCWNhcGFjaXR5PXguY2FwYWNpdHk7CgkJCXNpemU9eC5zaXplOwoJCQl0YWI9bmV3IHN0cmluZ1t4LmNhcGFjaXR5XTsKCQkJZm9yKGludCBpPTA7aTx4LmNhcGFjaXR5O2krKykKCQkJewoJCQkJdGFiW2ldPXgudGFiW2ldOwoJCQl9CgkJfQoJCX52ZWN0b3IoKQoJCXsKCQkJZGVsZXRlW10gdGFiOwoJCX0KCQl2b2lkIGFkZChzdHJpbmcgeCkKCQl7CgkJCWlmKGNhcGFjaXR5PnNpemUpCgkJCXsKCQkJCXRhYltzaXplXT14OwoJCQkJc2l6ZSsrOwoJCQl9CgkJCWVsc2UKCQkJewoJCQkJY2FwYWNpdHk9Y2FwYWNpdHkqMjsKCQkJCXN0cmluZyogdGFiMj1uZXcgc3RyaW5nW2NhcGFjaXR5XTsKCQkJCWZvcihpbnQgaT0wO2k8c2l6ZTtpKyspCgkJCQl7CgkJCQkJdGFiMltpXT10YWJbaV07CgkJCQl9CgkJCQlkZWxldGVbXSB0YWI7CgkJCQl0YWI9dGFiMjsKCQkJCXRhYltzaXplXT14OwoJCQkJc2l6ZSsrOwoJCQl9CgkJfQoJCWludCBnZXRTaXplKCkKCQl7CgkJCXJldHVybiBzaXplOwoJCX0KCQl2b2lkIHJlc2l6ZShpbnQgcykKCQl7CgkJCWlmKGNhcGFjaXR5Pj1zKQoJCQl7CgkJCQlmb3IoaW50IGk9c2l6ZTtpPHM7aSsrKQoJCQkJewoJCQkJCXRhYltpXT0iIjsKCQkJCX0KCQkJCXNpemU9czsKCQkJfQoJCQllbHNlCgkJCXsKCQkJCXdoaWxlKGNhcGFjaXR5PHMpCgkJCQljYXBhY2l0eT1jYXBhY2l0eSoyOwoJCQkJc3RyaW5nKiB0YWIyPW5ldyBzdHJpbmdbY2FwYWNpdHldOwoJCQkJZm9yKGludCBpPTA7aTxzaXplO2krKykKCQkJCXsKCQkJCQl0YWIyW2ldPXRhYltpXTsKCQkJCX0KCQkJCWRlbGV0ZVtdIHRhYjsKCQkJCXRhYj10YWIyOwoJCQkJZm9yKGludCBpPXNpemU7aTxzO2krKykKCQkJCXsKCQkJCQl0YWJbaV09IiI7CgkJCQl9CgkJCQlzaXplPXM7CgkJCX0KCQl9CgkJdm9pZCBjbGVhcigpCgkJewoJCQlzaXplPTA7CgkJfQoJCXZvaWQgaW5zZXJ0KGludCBpLHN0cmluZyB4KQoJCXsKCQkJaWYoaTw9c2l6ZSkKCQkJewoJCQkJaWYoc2l6ZTxjYXBhY2l0eSkKCQkJCXsKCQkJCQlmb3IoaW50IGo9c2l6ZS0xO2o+PWk7ai0tKQoJCQkJCXsKCQkJCQkJdGFiW2orMV09dGFiW2pdOwoJCQkJCX0KCQkJCQl0YWJbaV09eDsKCQkJCQlzaXplKys7CgkJCQl9CgkJCQllbHNlCgkJCQl7CgkJCQkJY2FwYWNpdHk9Y2FwYWNpdHkqMjsKCQkJCQlzdHJpbmcqIHRhYjI9bmV3IHN0cmluZ1tjYXBhY2l0eV07CgkJCQkJZm9yKGludCBqPTA7ajxzaXplO2orKykKCQkJCQl7CgkJCQkJCXRhYjJbal09dGFiW2pdOwoJCQkJCX0KCQkJCQlkZWxldGVbXSB0YWI7CgkJCQkJdGFiPXRhYjI7CgkJCQkJZm9yKGludCBqPXNpemUtMTtqPj1pO2otLSkKCQkJCQl7CgkJCQkJCXRhYltqKzFdPXRhYltqXTsKCQkJCQl9CgkJCQkJdGFiW2ldPXg7CgkJCQkJc2l6ZSsrOwoJCQkJfQoJCQl9CgkJfQoJCXZvaWQgZXJhc2UoaW50IGkpCgkJewoJCQlpZihpPD1zaXplJiZzaXplPjApCgkJCXsKCQkJCWZvcihpbnQgaj1pO2o8c2l6ZS0xO2orKykKCQkJCXsKCQkJCQl0YWJbal09dGFiW2orMV07CgkJCQl9CgkJCQlzaXplLS07CgkJCX0KCQl9CgkJc3RyaW5nICZvcGVyYXRvcltdKGludCB4KQoJCXsKCQkJaWYoeD49c2l6ZSkKCQkJcmV0dXJuIHRhYltzaXplLTFdOwoJCQllbHNlCgkJCXJldHVybiB0YWJbeF07CgkJfQoJCXZlY3RvciAmb3BlcmF0b3I9KHZlY3RvciB4KQoJCXsKCQkJY2FwYWNpdHk9eC5jYXBhY2l0eTsKCQkJc2l6ZT14LnNpemU7CgkJCWRlbGV0ZVtdIHRhYjsKCQkJdGFiPW5ldyBzdHJpbmdbY2FwYWNpdHldOwoJCQlmb3IoaW50IGk9MDtpPHNpemU7aSsrKQoJCQl7CgkJCQl0YWJbaV09eC50YWJbaV07CgkJCX0KCQl9CgkJZnJpZW5kIG9zdHJlYW0mIG9wZXJhdG9yPDwob3N0cmVhbSAmc3RyZWFtLCB2ZWN0b3IgJkEpCgkJewoJCQlmb3IoaW50IGk9MDtpPEEuc2l6ZTtpKyspCgkJCXsKCQkJCXN0cmVhbSA8PCBBLnRhYltpXTsKCQkJCXN0cmVhbSA8PCAiICI7CgkJCX0KCQkJcmV0dXJuIHN0cmVhbTsKCQl9CgkJZnJpZW5kIGlzdHJlYW0mIG9wZXJhdG9yPj4oaXN0cmVhbSAmc3RyZWFtLCB2ZWN0b3IgJkEpCgkJewoJCQlmb3IoaW50IGk9MDtpPEEuc2l6ZTtpKyspCgkJCXsKCQkJCXN0cmVhbSA+PiBBLnRhYltpXTsKCQkJfQoJCQlyZXR1cm4gc3RyZWFtOwoJCX0KfTsKCgppbnQgbWFpbigpCnsKICAgaW50IHosIGEsIHg7CiAgIHN0cmluZyB5OwogICBzdHJpbmcgczsKICAgCiAgIGNpbiA+PiB6OyAgIAogICB3aGlsZSAoei0tKQogICB7CiAgICAgIHZlY3RvciBWOwogICAgICBjaW4gPj4gYTsKICAgICAgd2hpbGUgKGEtLSkKICAgICAgeyAgICAgIAogICAgICAgICBjaW4gPj4gczsgICAgIAoJCSAvL2NvdXQgPDwgcyA8PCBlbmRsOyAgICAKICAgICAgICAgc3dpdGNoKHNbMF0pCiAgICAgICAgIHsKICAgICAgICAgICAgY2FzZSAnYSc6IAogICAgICAgICAgICAgICAgICBjaW4gPj4geTsKICAgICAgICAgICAgICAgICAgVi5hZGQoIHkgKTsKICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgJ2knOiAKICAgICAgICAgICAgICAgeyAgCiAgICAgICAgICAgICAgICAgIGNpbiA+PiB4ID4+IHk7CiAgICAgICAgICAgICAgICAgIFYuaW5zZXJ0KCB4LCB5ICk7CiAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICB9CiAgICAgICAgICAgIGNhc2UgJ2UnOiAKICAgICAgICAgICAgICAgeyAgCiAgICAgICAgICAgICAgICAgIGNpbiA+PiB4OwogICAgICAgICAgICAgICAgICBWLmVyYXNlKCB4ICk7CiAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICB9CiAgICAgICAgICAgIGNhc2UgJ2MnOiAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICBWLmNsZWFyKCk7CiAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICdyJzoKICAgICAgICAgICAgICAgaW50IHI7ICAKICAgICAgICAgICAgICAgY2luID4+IHI7ICAKICAgICAgICAgICAgICAgVi5yZXNpemUocik7CiAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICdzJzogICAgICAgICAgIC8vc2V0IGkgc2l6ZQogICAgICAgICAgICAgICBpZiAoc1sxXT09J2knKSAgeyBjb3V0IDw8IFYuZ2V0U2l6ZSgpIDw8IGVuZGw7IGJyZWFrOyB9CiAgICAgICAgICAgICAgIGNpbiA+PiB4ID4+IHk7CiAgICAgICAgICAgICAgIGlmIChWLmdldFNpemUoKT09MCkgYnJlYWs7CiAgICAgICAgICAgICAgIFZbeF0gPSB5OwogICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAnZyc6ICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgIGNpbiA+PiB4OyAgICAgCiAgICAgICAgICAgICAgIGlmIChWLmdldFNpemUoKT09MCkgYnJlYWs7CiAgICAgICAgICAgICAgIGNvdXQgPDwgVlt4XSA8PCBlbmRsOwogICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAncCc6CiAgICAgICAgICAgICAgIGNvdXQgPDwgViA8PCBlbmRsOwogICAgICAgICAgICAgICBicmVhazsKCiAgICAgICAgIH07CiAgICAgIH0gIAogICB9CiAgIHJldHVybiAwOwp9
MQoxMDAKYWRkIFNEVk5XS1QKYWRkIEVTWEZGCmVyYXNlIDEKYWRkIFMKZXJhc2UgMQppbnNlcnQgNCBZSUJZWk1PCnByaW50CnNldCAyIE1DR09NTklXT08KYWRkIEpKRAphZGQgSlQKaW5zZXJ0IDIgU1hMR05XTkpGCmFkZCBGT0dETk5UQVkKaW5zZXJ0IDUgTwpjbGVhcgpzaXplCnByaW50CmVyYXNlIDExCmluc2VydCAxMiBQVFZOVAppbnNlcnQgMyBJQ0hOQklYUklCCnNpemUKZ2V0IDUKZXJhc2UgMAplcmFzZSAxNQpzZXQgMTcgQ0EKcHJpbnQKZXJhc2UgMTEKZXJhc2UgMjAKZXJhc2UgMAplcmFzZSA4CmVyYXNlIDEKYWRkIFlRT0cKYWRkIFBNTktVVlZPTkIKc2V0IDI0IFpCWFRGVAphZGQgUFJFV0lJUlNJCmFkZCBZR0ZKV0ZXRFkKaW5zZXJ0IDUgSURDTUxaSwphZGQgQwphZGQgTFQKcHJpbnQKZ2V0IDE3CmFkZCBDRlVCQVdFRklECnNldCAyOCBXU0FPCmFkZCBPSERTQklCREZXCmFkZCBWCmluc2VydCA0IFdZQ0tSRUUKc2l6ZQppbnNlcnQgMjMgT1VYVUsKZ2V0IDQzCmFkZCBSRkFGWVFGCmNsZWFyCmluc2VydCAzMyBFTQpwcmludAplcmFzZSA0NwpjbGVhcgpzaXplCmNsZWFyCmdldCAxOApjbGVhcgpzZXQgOSBPCmVyYXNlIDI0CmVyYXNlIDIwCmFkZCBIWU5LVFBTQ0lQCmVyYXNlIDQ1CmVyYXNlIDM1CnByaW50CmFkZCBXWkVLU0ZCWFBVCmluc2VydCAyIFRECnNldCA0MSBRWU1QWEgKZ2V0IDIwCnByaW50Cmluc2VydCA0IFQKaW5zZXJ0IDM1IEdQUEVMUlZOCmVyYXNlIDQxCmVyYXNlIDE0CmFkZCBCWkdTR1QKZ2V0IDIwCmdldCAyMwpzaXplCnNldCA2IEhBQQphZGQgS1pXU0QKZ2V0IDQwCmFkZCBBQ1lGS0ZGS1YKYWRkIFMKZXJhc2UgNzkKYWRkIENQCnNpemUKYWRkIElHSAppbnNlcnQgMjcgWVRRU1RGTkpRCmluc2VydCAxMiBOT1NJWVRXTgpjbGVhcgpzaXplCmFkZCBVVENTR1BHQVlGCmVyYXNlIDY4CmFkZCBNS1NNRUlLVVFYCmFkZCBQCmdldCAxNgpwcmludAplcmFzZSA2NwpnZXQgMzgKaW5zZXJ0IDk1IE5M
1
100
add SDVNWKT
add ESXFF
erase 1
add S
erase 1
insert 4 YIBYZMO
print
set 2 MCGOMNIWOO
add JJD
add JT
insert 2 SXLGNWNJF
add FOGDNNTAY
insert 5 O
clear
size
print
erase 11
insert 12 PTVNT
insert 3 ICHNBIXRIB
size
get 5
erase 0
erase 15
set 17 CA
print
erase 11
erase 20
erase 0
erase 8
erase 1
add YQOG
add PMNKUVVONB
set 24 ZBXTFT
add PREWIIRSI
add YGFJWFWDY
insert 5 IDCMLZK
add C
add LT
print
get 17
add CFUBAWEFID
set 28 WSAO
add OHDSBIBDFW
add V
insert 4 WYCKREE
size
insert 23 OUXUK
get 43
add RFAFYQF
clear
insert 33 EM
print
erase 47
clear
size
clear
get 18
clear
set 9 O
erase 24
erase 20
add HYNKTPSCIP
erase 45
erase 35
print
add WZEKSFBXPU
insert 2 TD
set 41 QYMPXH
get 20
print
insert 4 T
insert 35 GPPELRVN
erase 41
erase 14
add BZGSGT
get 20
get 23
size
set 6 HAA
add KZWSD
get 40
add ACYFKFFKV
add S
erase 79
add CP
size
add IGH
insert 27 YTQSTFNJQ
insert 12 NOSIYTWN
clear
size
add UTCSGPGAYF
erase 68
add MKSMEIKUQX
add P
get 16
print
erase 67
get 38
insert 95 NL