#include <iostream>
#include <sstream>
#include <vector>
#include <cstdint>
#include <iterator>
using namespace std;
template <class T> int getVector(istream& s,
int32_t nbrCells,
typename vector<T>::iterator iter)
{
int rc = 0;
typename vector<T>::iterator save = iter;
if (s.flags() & ios::hex)
{
uint32_t utemp;
while ((distance(save, iter) != nbrCells) && (s >> utemp))
*iter++ = utemp;
}
else
{
int32_t temp;
while ((distance(save, iter) != nbrCells) && (s >> temp))
*iter++ = temp;
}
return rc;
}
int main()
{
std::vector<int32_t> v(10);
std::istringstream is("1 2 3 4 5\n6 7 8 9 10");
const int32_t NCO=10;
int rc = getVector<int32_t>(is, NCO, v.begin());
copy(v.begin(), v.end(), std::ostream_iterator<int32_t>(std::cout, " "));
std::cout << '\n';
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8c3N0cmVhbT4KI2luY2x1ZGUgPHZlY3Rvcj4KI2luY2x1ZGUgPGNzdGRpbnQ+CiNpbmNsdWRlIDxpdGVyYXRvcj4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCnRlbXBsYXRlIDxjbGFzcyBUPiBpbnQgZ2V0VmVjdG9yKGlzdHJlYW0mIHMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50MzJfdCAgICAgICAgIG5ickNlbGxzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGVuYW1lIHZlY3RvcjxUPjo6aXRlcmF0b3IgaXRlcikKewogICAgICAgIGludCAgICAgICAgICAgICByYyA9IDA7CiAgICAgICAgdHlwZW5hbWUgdmVjdG9yPFQ+OjppdGVyYXRvciBzYXZlID0gaXRlcjsKCiAgICAgICAgaWYgKHMuZmxhZ3MoKSAmIGlvczo6aGV4KQogICAgICAgIHsKICAgICAgICAgICAgICAgIHVpbnQzMl90ICAgICAgICB1dGVtcDsKICAgICAgICAgICAgICAgIHdoaWxlICgoZGlzdGFuY2Uoc2F2ZSwgaXRlcikgIT0gbmJyQ2VsbHMpICYmIChzID4+IHV0ZW1wKSkKICAgICAgICAgICAgICAgICAgICAgICAgKml0ZXIrKyA9IHV0ZW1wOwogICAgICAgIH0KICAgICAgICBlbHNlCiAgICAgICAgewogICAgICAgICAgICAgICAgaW50MzJfdCAgICAgICAgIHRlbXA7CiAgICAgICAgICAgICAgICB3aGlsZSAoKGRpc3RhbmNlKHNhdmUsIGl0ZXIpICE9IG5ickNlbGxzKSAmJiAocyA+PiB0ZW1wKSkKICAgICAgICAgICAgICAgICAgICAgICAgKml0ZXIrKyA9IHRlbXA7CgogICAgICAgIH0KICAgIHJldHVybiByYzsKfQppbnQgbWFpbigpCnsKICAgIHN0ZDo6dmVjdG9yPGludDMyX3Q+IHYoMTApOwogICAgc3RkOjppc3RyaW5nc3RyZWFtIGlzKCIxIDIgMyA0IDVcbjYgNyA4IDkgMTAiKTsKICAgIGNvbnN0IGludDMyX3QgTkNPPTEwOwogICAgaW50IHJjID0gZ2V0VmVjdG9yPGludDMyX3Q+KGlzLCBOQ08sIHYuYmVnaW4oKSk7CiAgICBjb3B5KHYuYmVnaW4oKSwgdi5lbmQoKSwgc3RkOjpvc3RyZWFtX2l0ZXJhdG9yPGludDMyX3Q+KHN0ZDo6Y291dCwgIiAiKSk7CiAgICBzdGQ6OmNvdXQgPDwgJ1xuJzsKfQo=