#include <iostream>
#include <iomanip>
using namespace std;
char * istr(int n)
{
char s[20] = { 0 }, // С запасом :)
*c = s+19;
int sign = (n < 0) ? (n*=-1, -1) : (n==0) ? 0 : 1;
if (n == 0) *--c = '0';
else
{
for(; n; n/=10) *--c = n%10+'0';
if (sign < 0) *--c = '-';
}
char * r = new char[s+20-c];
char *q = r;
while(*q++ = *c++);
return r;
}
int sint(const char * s)
{
int n = 0, sign = 1;
if (*s == '-') { sign = -1; s++; }
while(*s) n = n*10 + *s++ - '0';
return n*sign;
}
int main()
{
cout << "[" << istr(0) << "]\n";
cout << "[" << istr(10) << "]\n";
cout << "[" << istr(-20) << "]\n";
cout << "[" << istr(1450) << "]\n";
cout << "[" << istr(-213451230) << "]\n";
cout << "[" << sint(istr(0)) << "]\n";
cout << "[" << sint(istr(10)) << "]\n";
cout << "[" << sint(istr(-20)) << "]\n";
cout << "[" << sint(istr(1450)) << "]\n";
cout << "[" << sint(istr(-213451230)) << "]\n";
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8aW9tYW5pcD4KCnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgpjaGFyICogaXN0cihpbnQgbikKewogICAgY2hhciBzWzIwXSA9IHsgMCB9LCAvLyDQoSDQt9Cw0L/QsNGB0L7QvCA6KQogICAgICAgICpjID0gcysxOTsKICAgIGludCBzaWduID0gKG4gPCAwKSA/IChuKj0tMSwgLTEpIDogKG49PTApID8gMCA6IDE7CiAgICBpZiAobiA9PSAwKSAqLS1jID0gJzAnOwogICAgZWxzZQogICAgewogICAgICAgIGZvcig7IG47IG4vPTEwKSAqLS1jID0gbiUxMCsnMCc7CiAgICAgICAgaWYgKHNpZ24gPCAwKSAgICotLWMgPSAnLSc7CiAgICB9CiAgICBjaGFyICogciA9IG5ldyBjaGFyW3MrMjAtY107CiAgICBjaGFyICpxID0gcjsKICAgIHdoaWxlKCpxKysgPSAqYysrKTsKICAgIHJldHVybiByOwp9CgppbnQgc2ludChjb25zdCBjaGFyICogcykKewogICAgaW50IG4gPSAwLCBzaWduID0gMTsKICAgIGlmICgqcyA9PSAnLScpIHsgc2lnbiA9IC0xOyBzKys7IH0KICAgIHdoaWxlKCpzKSBuID0gbioxMCArICpzKysgLSAnMCc7CiAgICByZXR1cm4gbipzaWduOwp9CgppbnQgbWFpbigpCnsKICAgIGNvdXQgPDwgIlsiIDw8IGlzdHIoMCkgPDwgIl1cbiI7CiAgICBjb3V0IDw8ICJbIiA8PCBpc3RyKDEwKSA8PCAiXVxuIjsKICAgIGNvdXQgPDwgIlsiIDw8IGlzdHIoLTIwKSA8PCAiXVxuIjsKICAgIGNvdXQgPDwgIlsiIDw8IGlzdHIoMTQ1MCkgPDwgIl1cbiI7CiAgICBjb3V0IDw8ICJbIiA8PCBpc3RyKC0yMTM0NTEyMzApIDw8ICJdXG4iOwogICAgY291dCA8PCAiWyIgPDwgc2ludChpc3RyKDApKSA8PCAiXVxuIjsKICAgIGNvdXQgPDwgIlsiIDw8IHNpbnQoaXN0cigxMCkpIDw8ICJdXG4iOwogICAgY291dCA8PCAiWyIgPDwgc2ludChpc3RyKC0yMCkpIDw8ICJdXG4iOwogICAgY291dCA8PCAiWyIgPDwgc2ludChpc3RyKDE0NTApKSA8PCAiXVxuIjsKICAgIGNvdXQgPDwgIlsiIDw8IHNpbnQoaXN0cigtMjEzNDUxMjMwKSkgPDwgIl1cbiI7Cn0K