#include #include #include #include #include #include #include namespace std { std::istream& operator>>(std::istream& is, std::vector& set) { std::string line; std::getline(is, line); std::istringstream iss { line }; set = { std::istream_iterator { iss }, std::istream_iterator { } }; return is; } } int main() { std::ifstream ifs { "data.txt" }; int n; std::cin >> n; std::vector> data { std::istream_iterator> { ifs }, std::istream_iterator> { } }; std::vector averages (data.size()); std::transform(std::begin(data), std::end(data), std::begin(averages), [](std::vector const& set) { double sum { std::accumulate(std::begin(set), std::end(set), 0.0) }; return sum / set.size(); }); std::partial_sort(std::begin(averages), std::next(std::begin(averages), n), std::end(averages), std::greater{}); std::copy_n(std::begin(averages), n, std::ostream_iterator{std::cout, "\n"}); }