#include <iostream>
#include <array>
#include <vector>
#include <deque>
#include <string>
using namespace std;
template<typename T>
void print_container(const T& begin, const T& end)
{
for(T current = begin; current != end; ++current)
std::cout << *current << " ";
std::cout << std::endl;
}
int main() {
int array[] {1, 2, 3, 4, 5};
print_container((int*)array, array + 5);
std::array<int, 4> stdarray {10, 20, 30, 40};
print_container(stdarray.begin(), stdarray.end());
std::vector<std::string> vector {"one", "two", "three"};
print_container(vector.begin(), vector.end());
std::deque<const char*> deque {"one", "two", "three"};
print_container(deque.begin(), deque.end());
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8YXJyYXk+CiNpbmNsdWRlIDx2ZWN0b3I+CiNpbmNsdWRlIDxkZXF1ZT4KI2luY2x1ZGUgPHN0cmluZz4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCnRlbXBsYXRlPHR5cGVuYW1lIFQ+CnZvaWQgcHJpbnRfY29udGFpbmVyKGNvbnN0IFQmIGJlZ2luLCBjb25zdCBUJiBlbmQpCnsKCWZvcihUIGN1cnJlbnQgPSBiZWdpbjsgY3VycmVudCAhPSBlbmQ7ICsrY3VycmVudCkKCQlzdGQ6OmNvdXQgPDwgKmN1cnJlbnQgPDwgIiAiOwoJc3RkOjpjb3V0IDw8IHN0ZDo6ZW5kbDsKfQoKaW50IG1haW4oKSB7CglpbnQgYXJyYXlbXSB7MSwgMiwgMywgNCwgNX07CglwcmludF9jb250YWluZXIoKGludCopYXJyYXksIGFycmF5ICsgNSk7CgkKCXN0ZDo6YXJyYXk8aW50LCA0PiBzdGRhcnJheSB7MTAsIDIwLCAzMCwgNDB9OwoJcHJpbnRfY29udGFpbmVyKHN0ZGFycmF5LmJlZ2luKCksIHN0ZGFycmF5LmVuZCgpKTsKCQoJc3RkOjp2ZWN0b3I8c3RkOjpzdHJpbmc+IHZlY3RvciB7Im9uZSIsICJ0d28iLCAidGhyZWUifTsKCXByaW50X2NvbnRhaW5lcih2ZWN0b3IuYmVnaW4oKSwgdmVjdG9yLmVuZCgpKTsKCQoJc3RkOjpkZXF1ZTxjb25zdCBjaGFyKj4gZGVxdWUgeyJvbmUiLCAidHdvIiwgInRocmVlIn07CglwcmludF9jb250YWluZXIoZGVxdWUuYmVnaW4oKSwgZGVxdWUuZW5kKCkpOwoJCglyZXR1cm4gMDsKfQ==