#include <iostream>
#include <random>
#include <algorithm>
#include <array>
#include <iterator>
template <typename TContainer>
void generate(TContainer& container) {
const int MIN = 10;
const int MAX = 50;
std::minstd_rand engine;
std::uniform_int_distribution<int> dist(MIN, MAX);
std::generate(container.begin(), container.end(), [&]() { return dist(engine); });
}
int main() {
const int SIZE = 16;
std::array<int, SIZE> numbers;
generate(numbers);
std::copy(numbers.begin(), numbers.end(), std::ostream_iterator<int>(std::cout, " "));
std::cout << "\n";
std::reverse(numbers.begin(), numbers.begin() + SIZE / 2);
std::reverse(numbers.begin() + SIZE / 2, numbers.end());
std::copy(numbers.begin(), numbers.end(), std::ostream_iterator<int>(std::cout, " "));
std::cout << "\n";
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8cmFuZG9tPgojaW5jbHVkZSA8YWxnb3JpdGhtPgojaW5jbHVkZSA8YXJyYXk+CiNpbmNsdWRlIDxpdGVyYXRvcj4KCnRlbXBsYXRlIDx0eXBlbmFtZSBUQ29udGFpbmVyPgp2b2lkIGdlbmVyYXRlKFRDb250YWluZXImIGNvbnRhaW5lcikgewogICAgY29uc3QgaW50IE1JTiA9IDEwOwogICAgY29uc3QgaW50IE1BWCA9IDUwOwogICAgCiAgICBzdGQ6Om1pbnN0ZF9yYW5kIGVuZ2luZTsKICAgIHN0ZDo6dW5pZm9ybV9pbnRfZGlzdHJpYnV0aW9uPGludD4gZGlzdChNSU4sIE1BWCk7CiAgICBzdGQ6OmdlbmVyYXRlKGNvbnRhaW5lci5iZWdpbigpLCBjb250YWluZXIuZW5kKCksIFsmXSgpIHsgcmV0dXJuIGRpc3QoZW5naW5lKTsgfSk7Cn0KCmludCBtYWluKCkgewogICAgY29uc3QgaW50IFNJWkUgPSAxNjsgICAgCiAgICBzdGQ6OmFycmF5PGludCwgU0laRT4gbnVtYmVyczsKICAgIAogICAgZ2VuZXJhdGUobnVtYmVycyk7CiAgICAKICAgIHN0ZDo6Y29weShudW1iZXJzLmJlZ2luKCksIG51bWJlcnMuZW5kKCksIHN0ZDo6b3N0cmVhbV9pdGVyYXRvcjxpbnQ+KHN0ZDo6Y291dCwgIiAiKSk7CiAgICBzdGQ6OmNvdXQgPDwgIlxuIjsKICAgIAogICAgc3RkOjpyZXZlcnNlKG51bWJlcnMuYmVnaW4oKSwgbnVtYmVycy5iZWdpbigpICsgU0laRSAvIDIpOwogICAgc3RkOjpyZXZlcnNlKG51bWJlcnMuYmVnaW4oKSArIFNJWkUgLyAyLCBudW1iZXJzLmVuZCgpKTsKICAgIAogICAgc3RkOjpjb3B5KG51bWJlcnMuYmVnaW4oKSwgbnVtYmVycy5lbmQoKSwgc3RkOjpvc3RyZWFtX2l0ZXJhdG9yPGludD4oc3RkOjpjb3V0LCAiICIpKTsKICAgIHN0ZDo6Y291dCA8PCAiXG4iOwp9