#include <iostream>
#include<cstring>
#include <algorithm>
using namespace std;
class String
{
private:
char *sptr;
public:
String() : sptr(nullptr) {}
String(char str[])
{
sptr = new char[strlen(str) + 1];
strcpy( sptr, str );
}
String(const String& source)
{
sptr = new char[strlen(source.sptr) + 1];
strcpy( sptr, source.sptr);
}
~String()
{
delete [] sptr;
}
String& operator=( const String& other )
{
if(this != &other)
{
String tmp( other );
std::swap(tmp.sptr, sptr);
}
return *this;
}
void display()
{
for( char const* p = sptr; *p != '\0'; ++ p) {
std::cout << *p;
}
cout<<endl;
}
};
int main()
{
String s1;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZTxjc3RyaW5nPgojaW5jbHVkZSA8YWxnb3JpdGhtPgoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKY2xhc3MgU3RyaW5nCnsKICAgIHByaXZhdGU6CiAgICBjaGFyICpzcHRyOwoKICAgIHB1YmxpYzoKICAgIFN0cmluZygpIDogc3B0cihudWxscHRyKSB7fQoKICAgIFN0cmluZyhjaGFyIHN0cltdKQogICAgewogICAgICBzcHRyID0gbmV3IGNoYXJbc3RybGVuKHN0cikgKyAxXTsKICAgICAgc3RyY3B5KCBzcHRyLCBzdHIgKTsKICAgIH0KCiAgICBTdHJpbmcoY29uc3QgU3RyaW5nJiBzb3VyY2UpCiAgICB7CiAgICAgICAgc3B0ciA9IG5ldyBjaGFyW3N0cmxlbihzb3VyY2Uuc3B0cikgKyAxXTsKICAgICAgICBzdHJjcHkoIHNwdHIsIHNvdXJjZS5zcHRyKTsKICAgIH0KCiAgICB+U3RyaW5nKCkKICAgIHsKICAgICAgZGVsZXRlIFtdIHNwdHI7IAogICAgfQoKICAgIFN0cmluZyYgb3BlcmF0b3I9KCBjb25zdCBTdHJpbmcmIG90aGVyICkKICAgIHsKICAgICAgICBpZih0aGlzICE9ICZvdGhlcikKICAgICAgICB7CiAgICAgICAgICAgIFN0cmluZyB0bXAoIG90aGVyICk7ICAgCiAgICAgICAgICAgIHN0ZDo6c3dhcCh0bXAuc3B0ciwgc3B0cik7CiAgICAgICAgfQogICAgICAgIHJldHVybiAqdGhpczsgICAgCiAgICB9CiAgICB2b2lkIGRpc3BsYXkoKQogICAgewoKICAgICAgZm9yKCBjaGFyIGNvbnN0KiBwID0gc3B0cjsgKnAgIT0gJ1wwJzsgKysgcCkgewogICAgICAgICAgICBzdGQ6OmNvdXQgPDwgKnA7CiAgICAgICAgfQogICAgICAgIGNvdXQ8PGVuZGw7CgogICAgfQoKCn07CgogaW50IG1haW4oKQogewogCVN0cmluZyBzMTsKIH0gCQ==