#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> non_modified_container(16);
FillContainer(non_modified_container);
ShowContainer(non_modified_container);
std::vector<int> copy_of_container = non_modified_container;
std::rotate(std::begin(copy_of_container), std::begin(copy_of_container) + 5, std::end(copy_of_container));
ShowContainer(copy_of_container);
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dmVjdG9yPgojaW5jbHVkZSA8YWxnb3JpdGhtPgojaW5jbHVkZSA8aXRlcmF0b3I+Cgp0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4Kdm9pZCBGaWxsQ29udGFpbmVyKFQgJmNvbnRhaW5lcikgIHsKICBpbnQgaSA9IDA7CiAgc3RkOjpnZW5lcmF0ZShzdGQ6OmJlZ2luKGNvbnRhaW5lciksCiAgICAgICAgICAgICAgICBzdGQ6OmVuZChjb250YWluZXIpLCBbJl0oKXtyZXR1cm4gaSsrO30pOwp9Cgp0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4Kdm9pZCBTaG93Q29udGFpbmVyKFQgY29udGFpbmVyKSB7CiAgc3RkOjpjb3B5KHN0ZDo6YmVnaW4oY29udGFpbmVyKSwKICAgICAgICAgICAgc3RkOjplbmQoY29udGFpbmVyKSwgc3RkOjpvc3RyZWFtX2l0ZXJhdG9yPGludD4oc3RkOjpjb3V0LCIgIikpOwogIHN0ZDo6Y291dCA8PCBzdGQ6OmVuZGw7Cn0KCmludCBtYWluKGludCBhcmdjLCBjaGFyICphcmd2W10pIHsKICBzdGQ6OnZlY3RvcjxpbnQ+IG5vbl9tb2RpZmllZF9jb250YWluZXIoMTYpOwogIEZpbGxDb250YWluZXIobm9uX21vZGlmaWVkX2NvbnRhaW5lcik7CiAgU2hvd0NvbnRhaW5lcihub25fbW9kaWZpZWRfY29udGFpbmVyKTsKCiAgc3RkOjp2ZWN0b3I8aW50PiBjb3B5X29mX2NvbnRhaW5lciA9IG5vbl9tb2RpZmllZF9jb250YWluZXI7CiAgc3RkOjpyb3RhdGUoc3RkOjpiZWdpbihjb3B5X29mX2NvbnRhaW5lciksIHN0ZDo6YmVnaW4oY29weV9vZl9jb250YWluZXIpICsgNSwgc3RkOjplbmQoY29weV9vZl9jb250YWluZXIpKTsKCiAgU2hvd0NvbnRhaW5lcihjb3B5X29mX2NvbnRhaW5lcik7CiAgcmV0dXJuIDA7Cn0K