#include <iostream>
#include <algorithm>
#include <iterator>
using namespace std;
template <class Init1, class Init2, class OutIt>
inline OutIt join_array(Init1 begin1, Init1 end1, Init2 begin2, Init2 end2, OutIt output)
{
return copy(begin2, end2, copy(begin1, end1, output));
}
template <class Container1, class Container2, class ContainerOut>
inline void join_container(const Container1& c1, const Container2& c2, ContainerOut& out)
{
join_array(begin(c1), end(c1), begin(c2), end(c2), begin(out));
}
int main() {
int a[] = {1,2,3,4};
int b[] = {5,6,7,8};
int c[8];
join_container(a, b, c);
for(int x : c) cout << x << endl;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8YWxnb3JpdGhtPgojaW5jbHVkZSA8aXRlcmF0b3I+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7Cgp0ZW1wbGF0ZSA8Y2xhc3MgSW5pdDEsIGNsYXNzIEluaXQyLCBjbGFzcyBPdXRJdD4KaW5saW5lIE91dEl0IGpvaW5fYXJyYXkoSW5pdDEgYmVnaW4xLCBJbml0MSBlbmQxLCBJbml0MiBiZWdpbjIsIEluaXQyIGVuZDIsIE91dEl0IG91dHB1dCkKewoJcmV0dXJuIGNvcHkoYmVnaW4yLCBlbmQyLCBjb3B5KGJlZ2luMSwgZW5kMSwgb3V0cHV0KSk7Cn0KCnRlbXBsYXRlIDxjbGFzcyBDb250YWluZXIxLCBjbGFzcyBDb250YWluZXIyLCBjbGFzcyBDb250YWluZXJPdXQ+CmlubGluZSB2b2lkIGpvaW5fY29udGFpbmVyKGNvbnN0IENvbnRhaW5lcjEmIGMxLCBjb25zdCBDb250YWluZXIyJiBjMiwgQ29udGFpbmVyT3V0JiBvdXQpCnsKCWpvaW5fYXJyYXkoYmVnaW4oYzEpLCBlbmQoYzEpLCBiZWdpbihjMiksIGVuZChjMiksIGJlZ2luKG91dCkpOwp9CgppbnQgbWFpbigpIHsKCWludCBhW10gPSB7MSwyLDMsNH07CglpbnQgYltdID0gezUsNiw3LDh9OwoJaW50IGNbOF07CgkKCWpvaW5fY29udGFpbmVyKGEsIGIsIGMpOwoJCglmb3IoaW50IHggOiBjKSBjb3V0IDw8IHggPDwgZW5kbDsKCQoJcmV0dXJuIDA7Cn0K