#include <iostream>
#include <vector>
#include <algorithm>
#include <iterator>
template <typename T>
void FillContainer(T &container) {
int i = 0;
std::generate(std::begin(container),
std::end(container), [&](){return i++;});
}
template <typename T>
void ShowContainer(T container) {
std::copy(std::begin(container),
std::end(container), std::ostream_iterator<int>(std::cout," "));
std::cout << std::endl;
}
int main(int argc, char *argv[]) {
std::vector<int> values(16);
FillContainer(values);
ShowContainer(values);
std::rotate(std::begin(values), std::begin(values) + 5, std::end(values));
ShowContainer(values);
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dmVjdG9yPgojaW5jbHVkZSA8YWxnb3JpdGhtPgojaW5jbHVkZSA8aXRlcmF0b3I+Cgp0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4Kdm9pZCBGaWxsQ29udGFpbmVyKFQgJmNvbnRhaW5lcikgIHsKICBpbnQgaSA9IDA7CiAgc3RkOjpnZW5lcmF0ZShzdGQ6OmJlZ2luKGNvbnRhaW5lciksCiAgICAgICAgICAgICAgICBzdGQ6OmVuZChjb250YWluZXIpLCBbJl0oKXtyZXR1cm4gaSsrO30pOwp9Cgp0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4Kdm9pZCBTaG93Q29udGFpbmVyKFQgY29udGFpbmVyKSB7CiAgc3RkOjpjb3B5KHN0ZDo6YmVnaW4oY29udGFpbmVyKSwKICAgICAgICAgICAgc3RkOjplbmQoY29udGFpbmVyKSwgc3RkOjpvc3RyZWFtX2l0ZXJhdG9yPGludD4oc3RkOjpjb3V0LCIgIikpOwogIHN0ZDo6Y291dCA8PCBzdGQ6OmVuZGw7Cn0KCmludCBtYWluKGludCBhcmdjLCBjaGFyICphcmd2W10pIHsKICBzdGQ6OnZlY3RvcjxpbnQ+IHZhbHVlcygxNik7CiAgRmlsbENvbnRhaW5lcih2YWx1ZXMpOwogIFNob3dDb250YWluZXIodmFsdWVzKTsKICBzdGQ6OnJvdGF0ZShzdGQ6OmJlZ2luKHZhbHVlcyksIHN0ZDo6YmVnaW4odmFsdWVzKSArIDUsIHN0ZDo6ZW5kKHZhbHVlcykpOwogIFNob3dDb250YWluZXIodmFsdWVzKTsKICByZXR1cm4gMDsKfQo=