#include <iostream>
#include <vector>
int main(int argc, char** argv) {
std::vector<std::string> strings = {"onion", "bbaaccaadd", "alfalfa", "weugweougewoiheew", "pneumonoultramicroscopicsilicovolcanoconiosis"};
for (auto& str : strings) {
std::string lowestRot = str;
unsigned int sizeOfRot = 0;
for (auto it = str.begin(); it != str.end(); it++) {
std::string rotated {it, str.end()};
rotated += std::string {str.begin(), it};
if (rotated < lowestRot) {
lowestRot = rotated;
sizeOfRot = std::distance(str.begin(), it);
}
}
std::cout << sizeOfRot << " " << lowestRot << std::endl;
}
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dmVjdG9yPgoKaW50IG1haW4oaW50IGFyZ2MsIGNoYXIqKiBhcmd2KSB7CglzdGQ6OnZlY3RvcjxzdGQ6OnN0cmluZz4gc3RyaW5ncyA9IHsib25pb24iLCAiYmJhYWNjYWFkZCIsICJhbGZhbGZhIiwgIndldWd3ZW91Z2V3b2loZWV3IiwgInBuZXVtb25vdWx0cmFtaWNyb3Njb3BpY3NpbGljb3ZvbGNhbm9jb25pb3NpcyJ9OwoJCQoJZm9yIChhdXRvJiBzdHIgOiBzdHJpbmdzKSB7CgkJc3RkOjpzdHJpbmcgbG93ZXN0Um90ID0gc3RyOwoJCXVuc2lnbmVkIGludCBzaXplT2ZSb3QgPSAwOwoJCgkJZm9yIChhdXRvIGl0ID0gc3RyLmJlZ2luKCk7IGl0ICE9IHN0ci5lbmQoKTsgaXQrKykgewoJCQlzdGQ6OnN0cmluZyByb3RhdGVkIHtpdCwgc3RyLmVuZCgpfTsKCgkJCXJvdGF0ZWQgKz0gc3RkOjpzdHJpbmcge3N0ci5iZWdpbigpLCBpdH07CgkJCWlmIChyb3RhdGVkIDwgbG93ZXN0Um90KSB7CgkJCQlsb3dlc3RSb3QgPSByb3RhdGVkOwoJCQkJc2l6ZU9mUm90ID0gc3RkOjpkaXN0YW5jZShzdHIuYmVnaW4oKSwgaXQpOwoJCQl9CgkJfQoKCQlzdGQ6OmNvdXQgPDwgc2l6ZU9mUm90IDw8ICIgIiA8PCBsb3dlc3RSb3QgPDwgc3RkOjplbmRsOwoKCX0KfQ==