#include <functional>
#include <iostream>
#include <vector>
int main()
{
std::vector<std::function<char()>> izvrat = { []()->char {return 0x48; },
[]()->char {return 0x65; },
[]()->char {return 0x6c; },
[]()->char {return 0x6c; },
[]()->char {return 0x6f; },
[]()->char {return 0x20; },
[]()->char {return 0x77; },
[]()->char {return 0x6f; },
[]()->char {return 0x72; },
[]()->char {return 0x6c; },
[]()->char {return 0x64; },
[]()->char {return 0x21; } };
std::function<void(std::vector<std::function<char()>>::const_iterator, std::vector<std::function<char()>>::const_iterator)> f =
[&](std::vector<std::function<char()>>::const_iterator vecizvrat, std::vector<std::function<char()>>::const_iterator end)
{
if (vecizvrat != end)
{
[](char c, auto && ss) { ss << c; }((*vecizvrat)(), std::cout);
f(vecizvrat + 1, end);
}
};
f(izvrat.cbegin(), izvrat.cend());
return 0;
}
I2luY2x1ZGUgPGZ1bmN0aW9uYWw+CiNpbmNsdWRlIDxpb3N0cmVhbT4KI2luY2x1ZGUgPHZlY3Rvcj4KCmludCBtYWluKCkKewoJc3RkOjp2ZWN0b3I8c3RkOjpmdW5jdGlvbjxjaGFyKCk+PiBpenZyYXQgPSB7IFtdKCktPmNoYXIge3JldHVybiAweDQ4OyB9LAoJCVtdKCktPmNoYXIge3JldHVybiAweDY1OyB9LAoJCVtdKCktPmNoYXIge3JldHVybiAweDZjOyB9LAoJCVtdKCktPmNoYXIge3JldHVybiAweDZjOyB9LAoJCVtdKCktPmNoYXIge3JldHVybiAweDZmOyB9LAoJCVtdKCktPmNoYXIge3JldHVybiAweDIwOyB9LAoJCVtdKCktPmNoYXIge3JldHVybiAweDc3OyB9LAoJCVtdKCktPmNoYXIge3JldHVybiAweDZmOyB9LAoJCVtdKCktPmNoYXIge3JldHVybiAweDcyOyB9LAoJCVtdKCktPmNoYXIge3JldHVybiAweDZjOyB9LAoJCVtdKCktPmNoYXIge3JldHVybiAweDY0OyB9LAoJCVtdKCktPmNoYXIge3JldHVybiAweDIxOyB9IH07CgoJc3RkOjpmdW5jdGlvbjx2b2lkKHN0ZDo6dmVjdG9yPHN0ZDo6ZnVuY3Rpb248Y2hhcigpPj46OmNvbnN0X2l0ZXJhdG9yLCBzdGQ6OnZlY3RvcjxzdGQ6OmZ1bmN0aW9uPGNoYXIoKT4+Ojpjb25zdF9pdGVyYXRvcik+IGYgPQoJCVsmXShzdGQ6OnZlY3RvcjxzdGQ6OmZ1bmN0aW9uPGNoYXIoKT4+Ojpjb25zdF9pdGVyYXRvciB2ZWNpenZyYXQsIHN0ZDo6dmVjdG9yPHN0ZDo6ZnVuY3Rpb248Y2hhcigpPj46OmNvbnN0X2l0ZXJhdG9yIGVuZCkKCXsKCQlpZiAodmVjaXp2cmF0ICE9IGVuZCkKCQl7CgkJCVtdKGNoYXIgYywgYXV0byAmJiBzcykgeyBzcyA8PCBjOyB9KCgqdmVjaXp2cmF0KSgpLCBzdGQ6OmNvdXQpOwoJCQlmKHZlY2l6dnJhdCArIDEsIGVuZCk7CgkJfQoJfTsKCglmKGl6dnJhdC5jYmVnaW4oKSwgaXp2cmF0LmNlbmQoKSk7CgoJcmV0dXJuIDA7Cn0K