#include <iostream>
template<typename T>
void print_arr(T *first, T *end)
{
if (first != end)
{
std::cout << *first << std::endl;
print_arr(first + 1, end);
}
}
int main()
{
int arr[] = { 1, 2, 3, 4, 5 };
print_arr(arr, arr + sizeof arr / sizeof *arr);
}
I2luY2x1ZGUgPGlvc3RyZWFtPgoKdGVtcGxhdGU8dHlwZW5hbWUgVD4Kdm9pZCBwcmludF9hcnIoVCAqZmlyc3QsIFQgKmVuZCkKewogICAgaWYgKGZpcnN0ICE9IGVuZCkKICAgIHsKICAgICAgICBzdGQ6OmNvdXQgPDwgKmZpcnN0IDw8IHN0ZDo6ZW5kbDsKICAgICAgICBwcmludF9hcnIoZmlyc3QgKyAxLCBlbmQpOwogICAgfQp9CgppbnQgbWFpbigpCnsKICAgIGludCBhcnJbXSA9IHsgMSwgMiwgMywgNCwgNSB9OwogICAgcHJpbnRfYXJyKGFyciwgYXJyICsgc2l6ZW9mIGFyciAvIHNpemVvZiAqYXJyKTsKfQ==