Программа получает серию чисел от юзера и заканчиватеся на цифре -1. Программа должна выводить серию чисел вводимых более 3 раз и их индексы. например input: 2 3 4 2 2 5 2 4 3 4 2 -1 output 2:0,3,4,6,10 4:2,7,9 Сложность o(nlogn)
PHP: #include <algorithm>#include <iostream>#include <iterator>#include <functional>#include <map>#include <vector>struct number_info{ int count = 0; std::vector<int> positions;};int main(){ std::map<int, number_info> number_count; std::cout << "Input numbers: "; int pos = 0; std::find_if(std::istream_iterator<int>(std::cin), std::istream_iterator<int>(), [&number_count, &pos] (int value) { if(value == -1) return true; auto& info = number_count[value]; ++info.count; info.positions.push_back(pos++); return false; } ); for(const auto& pair : number_count) { if(pair.second.count < 3) continue; std::cout << pair.first << ": "; const char* separator = ""; for(const auto& pos : pair.second.positions) { std::cout << separator << pos; separator = ", "; } std::cout << std::endl; }}