#include <iostream>
#include <cstring>
using namespace std;
struct tablica
{
int roz;
signed int *tab;
tablica():roz(0),tab(0) {}
void dodaj(int nr,signed int wartosc);
void usun(int nr);
};
void tablica::dodaj(int nr,signed int wartosc)
{
signed int *buff=new signed int[roz+1];
memcpy(buff,tab,nr*sizeof(signed int));
buff[nr]=wartosc;
memcpy(buff+nr+1,tab+nr,(roz-nr)*sizeof(signed int));
delete[] tab;
tab=buff;
++roz;
}
void tablica::usun(int nr)
{
signed int *buff=new signed int[roz-1];
memcpy(buff,tab,nr*sizeof(signed int));
memcpy(buff+nr,tab+nr+1,(roz-nr-1)*sizeof(signed int));
delete[] tab;
tab=buff;
--roz;
}
int main()
{
tablica T;
T.dodaj(0,3);
for(int i=0;i<T.roz;++i) cout<<T.tab[i]<<' ';
cout<<endl;
T.dodaj(1,5);
T.dodaj(0,1);
for(int i=0;i<T.roz;++i) cout<<T.tab[i]<<' ';
cout<<endl;
T.dodaj(3,6);
T.dodaj(2,4);
T.dodaj(1,2);
T.dodaj(0,0);
for(int i=0;i<T.roz;++i) cout<<T.tab[i]<<' ';
cout<<endl;
T.usun(0);
T.usun(1);
T.usun(2);
T.usun(3);
for(int i=0;i<T.roz;++i) cout<<T.tab[i]<<' ';
cout<<endl;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8Y3N0cmluZz4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCnN0cnVjdCB0YWJsaWNhCiAgewogICBpbnQgcm96OwogICBzaWduZWQgaW50ICp0YWI7CiAgIHRhYmxpY2EoKTpyb3ooMCksdGFiKDApIHt9CiAgIHZvaWQgZG9kYWooaW50IG5yLHNpZ25lZCBpbnQgd2FydG9zYyk7CiAgIHZvaWQgdXN1bihpbnQgbnIpOwogIH07Cgp2b2lkIHRhYmxpY2E6OmRvZGFqKGludCBucixzaWduZWQgaW50IHdhcnRvc2MpCiAgewogICBzaWduZWQgaW50ICpidWZmPW5ldyBzaWduZWQgaW50W3JveisxXTsKICAgbWVtY3B5KGJ1ZmYsdGFiLG5yKnNpemVvZihzaWduZWQgaW50KSk7CiAgIGJ1ZmZbbnJdPXdhcnRvc2M7CiAgIG1lbWNweShidWZmK25yKzEsdGFiK25yLChyb3otbnIpKnNpemVvZihzaWduZWQgaW50KSk7CiAgIGRlbGV0ZVtdIHRhYjsKICAgdGFiPWJ1ZmY7CiAgICsrcm96OwogIH0KICAKdm9pZCB0YWJsaWNhOjp1c3VuKGludCBucikKICB7CiAgIHNpZ25lZCBpbnQgKmJ1ZmY9bmV3IHNpZ25lZCBpbnRbcm96LTFdOwogICBtZW1jcHkoYnVmZix0YWIsbnIqc2l6ZW9mKHNpZ25lZCBpbnQpKTsKICAgbWVtY3B5KGJ1ZmYrbnIsdGFiK25yKzEsKHJvei1uci0xKSpzaXplb2Yoc2lnbmVkIGludCkpOwogICBkZWxldGVbXSB0YWI7CiAgIHRhYj1idWZmOwogICAtLXJvejsKICB9CgppbnQgbWFpbigpCiAgewogICB0YWJsaWNhIFQ7CiAgIFQuZG9kYWooMCwzKTsKICAgZm9yKGludCBpPTA7aTxULnJvejsrK2kpIGNvdXQ8PFQudGFiW2ldPDwnICc7CiAgIGNvdXQ8PGVuZGw7CiAgIFQuZG9kYWooMSw1KTsKICAgVC5kb2RhaigwLDEpOwogICBmb3IoaW50IGk9MDtpPFQucm96OysraSkgY291dDw8VC50YWJbaV08PCcgJzsKICAgY291dDw8ZW5kbDsKICAgVC5kb2RhaigzLDYpOwogICBULmRvZGFqKDIsNCk7CiAgIFQuZG9kYWooMSwyKTsKICAgVC5kb2RhaigwLDApOwogICBmb3IoaW50IGk9MDtpPFQucm96OysraSkgY291dDw8VC50YWJbaV08PCcgJzsKICAgY291dDw8ZW5kbDsKICAgVC51c3VuKDApOwogICBULnVzdW4oMSk7CiAgIFQudXN1bigyKTsKICAgVC51c3VuKDMpOwogICBmb3IoaW50IGk9MDtpPFQucm96OysraSkgY291dDw8VC50YWJbaV08PCcgJzsKICAgY291dDw8ZW5kbDsKICAgcmV0dXJuIDA7CiAgfQ==