#include <iostream>
char foo(const std::string& s, std::size_t index)
{
auto size = s.size();
while (size <= index) {
size *= 2;
}
while (size != s.size()) {
size /= 2;
if (index >= size) {
index = (index - 1) % size;
}
}
return s[index];
}
int main()
{
for (int i = 0; i != 12; ++i) {
std::cout << foo("COW", i);
}
}
I2luY2x1ZGUgPGlvc3RyZWFtPgoKY2hhciBmb28oY29uc3Qgc3RkOjpzdHJpbmcmIHMsIHN0ZDo6c2l6ZV90IGluZGV4KQp7CiAgICBhdXRvIHNpemUgPSBzLnNpemUoKTsKICAgIAogICAgd2hpbGUgKHNpemUgPD0gaW5kZXgpIHsKICAgICAgICBzaXplICo9IDI7CiAgICB9CiAgICB3aGlsZSAoc2l6ZSAhPSBzLnNpemUoKSkgewogICAgICAgIHNpemUgLz0gMjsKICAgICAgICBpZiAoaW5kZXggPj0gc2l6ZSkgewogICAgICAgICAgICBpbmRleCA9IChpbmRleCAtIDEpICUgc2l6ZTsKICAgICAgICB9CiAgICB9CiAgICByZXR1cm4gc1tpbmRleF07Cn0KCmludCBtYWluKCkKewogICAgZm9yIChpbnQgaSA9IDA7IGkgIT0gMTI7ICsraSkgewogICAgICAgIHN0ZDo6Y291dCA8PCBmb28oIkNPVyIsIGkpOwogICAgfQp9Cg==