#include <string>
#include <iostream>
void split(const std::string& s) {
size_t sz = s.size();
size_t half_sz = sz / 2;
std::string left = s.substr(0, half_sz);
std::string right;
if ((sz % 2) == 0) {
right = s.substr(half_sz, half_sz);
} else {
right = s.substr(half_sz + 1, half_sz);
}
std::cout << "String: " << s
<< "\n* Left: " << left
<< "\n* Right: " << right
<< '\n' << std::endl;
}
int main() {
split("Hello."); // 6 characters, we're good.
split("Heya."); // 5 characters, 'y' will be discarded.
split("abba"); // 4 characters, we're good.
}
I2luY2x1ZGUgPHN0cmluZz4KI2luY2x1ZGUgPGlvc3RyZWFtPgoKdm9pZCBzcGxpdChjb25zdCBzdGQ6OnN0cmluZyYgcykgewogICAgc2l6ZV90IHN6ID0gcy5zaXplKCk7CiAgICBzaXplX3QgaGFsZl9zeiA9IHN6IC8gMjsKICAgIHN0ZDo6c3RyaW5nIGxlZnQgPSBzLnN1YnN0cigwLCBoYWxmX3N6KTsKICAgIHN0ZDo6c3RyaW5nIHJpZ2h0OwogICAgCiAgICBpZiAoKHN6ICUgMikgPT0gMCkgewogICAgICAgIHJpZ2h0ID0gcy5zdWJzdHIoaGFsZl9zeiwgaGFsZl9zeik7CiAgICB9IGVsc2UgewogICAgICAgIHJpZ2h0ID0gcy5zdWJzdHIoaGFsZl9zeiArIDEsIGhhbGZfc3opOwogICAgfQogICAgCiAgICBzdGQ6OmNvdXQgPDwgIlN0cmluZzogIiA8PCBzCiAgICAgICAgICAgICAgPDwgIlxuKiBMZWZ0OiAgIiA8PCBsZWZ0CiAgICAgICAgICAgICAgPDwgIlxuKiBSaWdodDogIiA8PCByaWdodAogICAgICAgICAgICAgIDw8ICdcbicgPDwgc3RkOjplbmRsOwp9CgppbnQgbWFpbigpIHsKICAgIHNwbGl0KCJIZWxsby4iKTsgLy8gNiBjaGFyYWN0ZXJzLCB3ZSdyZSBnb29kLgogICAgc3BsaXQoIkhleWEuIik7ICAvLyA1IGNoYXJhY3RlcnMsICd5JyB3aWxsIGJlIGRpc2NhcmRlZC4KICAgIHNwbGl0KCJhYmJhIik7ICAgLy8gNCBjaGFyYWN0ZXJzLCB3ZSdyZSBnb29kLgp9