#include #include #include #include #include #include int main() { std::ifstream ifs { "schedule.txt" }; std::vector> events { }; bool arrival { false }; std::transform(std::istream_iterator{ ifs }, std::istream_iterator{ }, std::back_inserter(events), [&arrival](int time) { return std::make_pair(time, arrival = !arrival); }); std::sort(std::begin(events), std::end(events)); std::vector trains(events.size()); std::transform(std::begin(events), std::end(events), std::begin(trains), [](std::pair const& p) { if (p.second) return 1; return -1; }); std::partial_sum(std::begin(trains), std::end(trains), std::begin(trains)); auto it = std::max_element(std::begin(trains), std::end(trains)); auto index = std::distance(std::begin(trains), it); std::cout << "The maximum occurances are " << *it << " at time point " << std::next(std::begin(events), index)->first << std::endl; }