#include <iostream>
#include <string.h>
void reverse(char* begin, const char* const end, char* back) {
while (begin != end) {
std::swap(*(begin++), *(--back));
}
}
int main(int argc, char** argv)
{
char input[] = "abcdef";
size_t len = strlen(input);
size_t substrlen = 2;
std::cout << input << std::endl;
reverse(input, input + substrlen, input + len);
reverse(input + substrlen, input + substrlen, input + len - substrlen);
std::cout << input << std::endl;
return 0;
}
ICAgICNpbmNsdWRlIDxpb3N0cmVhbT4KICAgICNpbmNsdWRlIDxzdHJpbmcuaD4KCiAgICB2b2lkIHJldmVyc2UoY2hhciogYmVnaW4sIGNvbnN0IGNoYXIqIGNvbnN0IGVuZCwgY2hhciogYmFjaykgewogICAgICAgIHdoaWxlIChiZWdpbiAhPSBlbmQpIHsKICAgICAgICAgICAgc3RkOjpzd2FwKCooYmVnaW4rKyksICooLS1iYWNrKSk7CiAgICAgICAgfQogICAgfQoKCWludCBtYWluKGludCBhcmdjLCBjaGFyKiogYXJndikKCXsKCSAgICBjaGFyIGlucHV0W10gPSAiYWJjZGVmIjsKCSAgICBzaXplX3QgbGVuID0gc3RybGVuKGlucHV0KTsKCSAgICBzaXplX3Qgc3Vic3RybGVuID0gMjsKCSAgICBzdGQ6OmNvdXQgPDwgaW5wdXQgPDwgc3RkOjplbmRsOyAgICAKCSAgICByZXZlcnNlKGlucHV0LCBpbnB1dCArIHN1YnN0cmxlbiwgaW5wdXQgKyBsZW4pOwoJICAgIHJldmVyc2UoaW5wdXQgKyBzdWJzdHJsZW4sIGlucHV0ICsgc3Vic3RybGVuLCBpbnB1dCArIGxlbiAtIHN1YnN0cmxlbik7CgkgICAgc3RkOjpjb3V0IDw8IGlucHV0IDw8IHN0ZDo6ZW5kbDsKCSAgICByZXR1cm4gMDsKCX0=