#include <vector>
#include <iostream>
#include <algorithm>
#include <iterator>
template <typename Containers>
std::vector<typename Containers::value_type::value_type>
reduce_minelement(const Containers& containers)
{
std::vector<typename Containers::value_type::value_type> result;
result.reserve(containers.size()); // pre-allocate
for (auto it=containers.begin(); it!=containers.end(); ++it)
result.push_back(*std::max_element(it->begin(), it->end()));
return result;
}
static const std::vector<std::vector<int> > data = {
{ 52, 1, 93, 74 },
{ 2, 18, 67, 77 },
{ 85, 35, -4 },
{ 48 },
{ 68, 18, 91, 0 },
};
int main()
{
auto reduced = reduce_minelement(data);
std::copy(reduced.begin(), reduced.end(), std::ostream_iterator<int>(std::cout, ", "));
return 0;
}
I2luY2x1ZGUgPHZlY3Rvcj4KI2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8YWxnb3JpdGhtPgojaW5jbHVkZSA8aXRlcmF0b3I+Cgp0ZW1wbGF0ZSA8dHlwZW5hbWUgQ29udGFpbmVycz4KCXN0ZDo6dmVjdG9yPHR5cGVuYW1lIENvbnRhaW5lcnM6OnZhbHVlX3R5cGU6OnZhbHVlX3R5cGU+CiAgICAgICAgIHJlZHVjZV9taW5lbGVtZW50KGNvbnN0IENvbnRhaW5lcnMmIGNvbnRhaW5lcnMpCnsKCXN0ZDo6dmVjdG9yPHR5cGVuYW1lIENvbnRhaW5lcnM6OnZhbHVlX3R5cGU6OnZhbHVlX3R5cGU+IHJlc3VsdDsKCXJlc3VsdC5yZXNlcnZlKGNvbnRhaW5lcnMuc2l6ZSgpKTsgLy8gcHJlLWFsbG9jYXRlCgoJZm9yIChhdXRvIGl0PWNvbnRhaW5lcnMuYmVnaW4oKTsgaXQhPWNvbnRhaW5lcnMuZW5kKCk7ICsraXQpCgkJcmVzdWx0LnB1c2hfYmFjaygqc3RkOjptYXhfZWxlbWVudChpdC0+YmVnaW4oKSwgaXQtPmVuZCgpKSk7CgoJcmV0dXJuIHJlc3VsdDsKfQoKc3RhdGljIGNvbnN0IHN0ZDo6dmVjdG9yPHN0ZDo6dmVjdG9yPGludD4gPiBkYXRhID0geyAKCSAgIHsgNTIsICAgIDEsIDkzLCA3NCB9LAoJICAgIHsgMiwgICAxOCwgNjcsIDc3IH0sCgkgICB7IDg1LCAgIDM1LCAtNCAgICAgfSwKCSAgIHsgNDggfSwKCSAgIHsgNjgsICAgMTgsIDkxLCAgMCB9LAp9OwoKaW50IG1haW4oKQp7CglhdXRvIHJlZHVjZWQgPSByZWR1Y2VfbWluZWxlbWVudChkYXRhKTsKCXN0ZDo6Y29weShyZWR1Y2VkLmJlZ2luKCksIHJlZHVjZWQuZW5kKCksIHN0ZDo6b3N0cmVhbV9pdGVyYXRvcjxpbnQ+KHN0ZDo6Y291dCwgIiwgIikpOwoKCXJldHVybiAwOwp9CgoK