#include <iostream>
std::string str="djclsodjfdjclsodjfdjclsodjfdjclsodjfdjclsodjfdjclsodjfdjclsodjfdjclsodjfdjclsodjfdjclsodjfdjclsodjfdjclsodjfdjclsodjfdjclsodjfdjclsodjfdjclsodjfdjclsodjfdjclsodjfdjclsodjfdjclsodjfdjclsodjfdjclsodjfdjclsodjfdjclsodjfdjclsodjfdjclsodjfdjclsodjfdjclsodjfdjclsodjfdjclsodjfdjclsodjfdjclsodjfdjclsodjfdjclsodjfdjclsodjfdjclsodjfdjclsodjfdjclsodjfdjclsodjfdjclsodjfdjclsodjfdjclsodjfdjclsodjfdjclsodjfdjclsodjfdjclsodjfdjclsodjfdjclsodjfdjclsodjfdjclsodjfdjclsodjfdjclsodjfdjclsodjfdjclsodjfdjclsodjfdjclsodjfdjclsodjfdjclsodjfdjclsodjfdjclsodjfdjclsodjfdjclsodjfdjclsodjfdjclsodjfdjclsodjfdjclsodjfdjclsodjfdjclsodjfdjclsodjfdjclsodjfdjclsodjssssssevessssssfdjclsodjfdjclsodjfdjclsodjfdjclsodjfdjclsodjfdjclsodjfdjclsodjfdjclsodjfdjclsodjfdjclsodjfdjclsodjfdjclsodjfdjclsodjfdjclsodjfdjclsodjfdjclsodjfdjclsodjfdjclsodjfdjclsodjfdjclsodjfdjclsodjfdjclsodjfdjclsodjfdjclsodjfdjclsodjfdjclsodjfdjclsodjfdjclsodjfdjclsodjfdjclsodjfdjclsodjfdjclsodjfdjclsodjfdjclsodjfdjclsodjfdjclsodjfdjclsodjfdjclsodjfdjclsodjfdjclsodjfdjclsodjfdjclsodjfdjclsodjfdjclsodjfdjclsodjfdjclsodjfdjclsodjfdjclsodjfdjclsodjfdjclsodjf";
std::string largestPalindrome(std::string input) {
std::string largest = "";
for (unsigned int offset = 0; offset <= 1; offset++) {
for (unsigned int mid = 0; mid + offset < input.length(); mid++) {
unsigned int max = input.length() - offset - mid;
max = max > mid ? mid : max;
for (unsigned int i = 0; i < max; i++) {
if (input[mid - i] == input[mid + offset + i]) {
if (i + i + offset + 1 > largest.length()) {
largest = input.substr(mid - i, i + i + offset + 1);
}
} else {
break;
}
}
}
}
return largest;
}
int main () {
std::cout << str << std::endl;
std::cout << largestPalindrome(str) << std::endl;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgoKCnN0ZDo6c3RyaW5nIHN0cj0iZGpjbHNvZGpmZGpjbHNvZGpmZGpjbHNvZGpmZGpjbHNvZGpmZGpjbHNvZGpmZGpjbHNvZGpmZGpjbHNvZGpmZGpjbHNvZGpmZGpjbHNvZGpmZGpjbHNvZGpmZGpjbHNvZGpmZGpjbHNvZGpmZGpjbHNvZGpmZGpjbHNvZGpmZGpjbHNvZGpmZGpjbHNvZGpmZGpjbHNvZGpmZGpjbHNvZGpmZGpjbHNvZGpmZGpjbHNvZGpmZGpjbHNvZGpmZGpjbHNvZGpmZGpjbHNvZGpmZGpjbHNvZGpmZGpjbHNvZGpmZGpjbHNvZGpmZGpjbHNvZGpmZGpjbHNvZGpmZGpjbHNvZGpmZGpjbHNvZGpmZGpjbHNvZGpmZGpjbHNvZGpmZGpjbHNvZGpmZGpjbHNvZGpmZGpjbHNvZGpmZGpjbHNvZGpmZGpjbHNvZGpmZGpjbHNvZGpmZGpjbHNvZGpmZGpjbHNvZGpmZGpjbHNvZGpmZGpjbHNvZGpmZGpjbHNvZGpmZGpjbHNvZGpmZGpjbHNvZGpmZGpjbHNvZGpmZGpjbHNvZGpmZGpjbHNvZGpmZGpjbHNvZGpmZGpjbHNvZGpmZGpjbHNvZGpmZGpjbHNvZGpmZGpjbHNvZGpmZGpjbHNvZGpmZGpjbHNvZGpmZGpjbHNvZGpmZGpjbHNvZGpmZGpjbHNvZGpmZGpjbHNvZGpmZGpjbHNvZGpmZGpjbHNvZGpmZGpjbHNvZGpmZGpjbHNvZGpmZGpjbHNvZGpmZGpjbHNvZGpmZGpjbHNvZGpmZGpjbHNvZGpmZGpjbHNvZGpmZGpjbHNvZGpmZGpjbHNvZGpmZGpjbHNvZGpzc3Nzc3NldmVzc3Nzc3NmZGpjbHNvZGpmZGpjbHNvZGpmZGpjbHNvZGpmZGpjbHNvZGpmZGpjbHNvZGpmZGpjbHNvZGpmZGpjbHNvZGpmZGpjbHNvZGpmZGpjbHNvZGpmZGpjbHNvZGpmZGpjbHNvZGpmZGpjbHNvZGpmZGpjbHNvZGpmZGpjbHNvZGpmZGpjbHNvZGpmZGpjbHNvZGpmZGpjbHNvZGpmZGpjbHNvZGpmZGpjbHNvZGpmZGpjbHNvZGpmZGpjbHNvZGpmZGpjbHNvZGpmZGpjbHNvZGpmZGpjbHNvZGpmZGpjbHNvZGpmZGpjbHNvZGpmZGpjbHNvZGpmZGpjbHNvZGpmZGpjbHNvZGpmZGpjbHNvZGpmZGpjbHNvZGpmZGpjbHNvZGpmZGpjbHNvZGpmZGpjbHNvZGpmZGpjbHNvZGpmZGpjbHNvZGpmZGpjbHNvZGpmZGpjbHNvZGpmZGpjbHNvZGpmZGpjbHNvZGpmZGpjbHNvZGpmZGpjbHNvZGpmZGpjbHNvZGpmZGpjbHNvZGpmZGpjbHNvZGpmZGpjbHNvZGpmZGpjbHNvZGpmZGpjbHNvZGpmZGpjbHNvZGpmZGpjbHNvZGpmIjsKCgpzdGQ6OnN0cmluZyBsYXJnZXN0UGFsaW5kcm9tZShzdGQ6OnN0cmluZyBpbnB1dCkgewogICAgc3RkOjpzdHJpbmcgbGFyZ2VzdCA9ICIiOwogICAgZm9yICh1bnNpZ25lZCBpbnQgb2Zmc2V0ID0gMDsgb2Zmc2V0IDw9IDE7IG9mZnNldCsrKSB7CiAgICAgICAgZm9yICh1bnNpZ25lZCBpbnQgbWlkID0gMDsgbWlkICsgb2Zmc2V0IDwgaW5wdXQubGVuZ3RoKCk7IG1pZCsrKSB7CiAgICAgICAgICAgIHVuc2lnbmVkIGludCBtYXggPSBpbnB1dC5sZW5ndGgoKSAtIG9mZnNldCAtIG1pZDsKICAgICAgICAgICAgbWF4ID0gbWF4ID4gbWlkID8gbWlkIDogbWF4OwogICAgICAgICAgICBmb3IgKHVuc2lnbmVkIGludCBpID0gMDsgaSA8IG1heDsgaSsrKSB7CiAgICAgICAgICAgICAgICBpZiAoaW5wdXRbbWlkIC0gaV0gPT0gaW5wdXRbbWlkICsgb2Zmc2V0ICsgaV0pIHsKICAgICAgICAgICAgICAgICAgICBpZiAoaSArIGkgKyBvZmZzZXQgKyAxID4gbGFyZ2VzdC5sZW5ndGgoKSkgewogICAgICAgICAgICAgICAgICAgICAgICBsYXJnZXN0ID0gaW5wdXQuc3Vic3RyKG1pZCAtIGksIGkgKyBpICsgb2Zmc2V0ICsgMSk7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KCiAgICByZXR1cm4gbGFyZ2VzdDsKfQoKCmludCBtYWluICgpIHsKICAgIHN0ZDo6Y291dCA8PCBzdHIgPDwgc3RkOjplbmRsOwogICAgc3RkOjpjb3V0IDw8IGxhcmdlc3RQYWxpbmRyb21lKHN0cikgIDw8IHN0ZDo6ZW5kbDsKICAgIHJldHVybiAwOwp9Cg==