#include <iostream>
#include<cstring>
using namespace std;
class String
{
private:
char *sptr;
public:
String()
{
}
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(&other!=NULL)
{
String tmp( other );
sptr = new char[strlen(tmp.sptr) + 1];
strcpy( sptr, tmp.sptr);
}
return *this;
}
void display()
{
for( char const* p = sptr; *p != '\0'; ++ p) {
std::cout << *p;
}
cout<<endl;
}
};
int main()
{
String s1;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZTxjc3RyaW5nPgoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKY2xhc3MgU3RyaW5nCnsKICAgIHByaXZhdGU6CiAgICBjaGFyICpzcHRyOwoKICAgIHB1YmxpYzoKICAgIFN0cmluZygpCiAgICB7CgogICAgIH0KCiAgICBTdHJpbmcoY2hhciBzdHJbXSkKICAgIHsKICAgICAgc3B0ciA9IG5ldyBjaGFyW3N0cmxlbihzdHIpICsgMV07CiAgICAgIHN0cmNweSggc3B0ciwgc3RyICk7CiAgICB9CgogICAgU3RyaW5nKGNvbnN0IFN0cmluZyYgc291cmNlKQogICAgewoKICAgICAgICBzcHRyID0gbmV3IGNoYXJbc3RybGVuKHNvdXJjZS5zcHRyKSArIDFdOwogICAgICAgIHN0cmNweSggc3B0ciwgc291cmNlLnNwdHIpOwoKICAgIH0KCiAgICB+U3RyaW5nKCkKICAgIHsKICAgICAgZGVsZXRlIHNwdHI7IAogICAgfQoKICAgIFN0cmluZyBvcGVyYXRvcj0oIGNvbnN0IFN0cmluZyYgb3RoZXIgKQogICAgewoKICAgICAgICBpZigmb3RoZXIhPU5VTEwpCiAgICAgICAgewoKICAgICAgICAgICAgU3RyaW5nIHRtcCggb3RoZXIgKTsgICAKICAgICAgICAgICAgc3B0ciA9IG5ldyBjaGFyW3N0cmxlbih0bXAuc3B0cikgKyAxXTsKICAgICAgICAgICAgc3RyY3B5KCBzcHRyLCB0bXAuc3B0cik7CiAgICAgICAgfQogICAgICAgIHJldHVybiAqdGhpczsgICAgCiAgICB9CiAgICB2b2lkIGRpc3BsYXkoKQogICAgewoKICAgICAgZm9yKCBjaGFyIGNvbnN0KiBwID0gc3B0cjsgKnAgIT0gJ1wwJzsgKysgcCkgewogICAgICAgICAgICBzdGQ6OmNvdXQgPDwgKnA7CiAgICAgICAgfQogICAgICAgIGNvdXQ8PGVuZGw7CgogICAgfQoKCn07CgogaW50IG1haW4oKQogewogCVN0cmluZyBzMTsKIH0gCQ==