#include <iostream>
#include <cstddef>
using namespace std;
template<typename T>
struct Range {
T range_start;
size_t size;
T begin() { return range_start; }
T end() { return range_start + size; }
};
template<typename T>
Range<T> make_range(T begin, size_t s) {
return {begin, s};
}
int main() {
int* tab = new int[5];
tab[2] = 45;
for(auto& i : make_range(tab, 5)) cout << i;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8Y3N0ZGRlZj4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCnRlbXBsYXRlPHR5cGVuYW1lIFQ+CnN0cnVjdCBSYW5nZSB7CglUIHJhbmdlX3N0YXJ0OwoJc2l6ZV90IHNpemU7CglUIGJlZ2luKCkgeyByZXR1cm4gcmFuZ2Vfc3RhcnQ7IH0KCVQgZW5kKCkgeyByZXR1cm4gcmFuZ2Vfc3RhcnQgKyBzaXplOyB9Cn07Cgp0ZW1wbGF0ZTx0eXBlbmFtZSBUPgpSYW5nZTxUPiBtYWtlX3JhbmdlKFQgYmVnaW4sIHNpemVfdCBzKSB7CglyZXR1cm4ge2JlZ2luLCBzfTsKfQoKaW50IG1haW4oKSB7CglpbnQqIHRhYiA9IG5ldyBpbnRbNV07Cgl0YWJbMl0gPSA0NTsKCWZvcihhdXRvJiBpIDogbWFrZV9yYW5nZSh0YWIsIDUpKSBjb3V0IDw8IGk7Cn0=