#include <algorithm>
#include <iostream>
#include <vector>
void displayFrequentNumber(const std::vector<int>& input)
{
std::vector<std::pair<int, std::size_t>> v;
for (std::size_t i = 0; i != input.size(); ++i) {
v.push_back({input[i], i});
}
std::sort(begin(v), end(v));
for (auto it = begin(v); it != end(v); ) {
auto next = find_if(it, end(v),
[it](const std::pair<int, std::size_t>& rhs)
{return it->first != rhs.first;});
if (next - it >= 3) {
std::cout << it->first << ":";
for (; it != next; ++it) {
std::cout << " " << it->second;
}
std::cout << std::endl;
}
it = next;
}
}
int main(int argc, char *argv[])
{
displayFrequentNumber({6,4,4,5,2,4,4,3,5,5});
return 0;
}
I2luY2x1ZGUgPGFsZ29yaXRobT4KI2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dmVjdG9yPgoKdm9pZCBkaXNwbGF5RnJlcXVlbnROdW1iZXIoY29uc3Qgc3RkOjp2ZWN0b3I8aW50PiYgaW5wdXQpCnsKICAgIHN0ZDo6dmVjdG9yPHN0ZDo6cGFpcjxpbnQsIHN0ZDo6c2l6ZV90Pj4gdjsKCiAgICBmb3IgKHN0ZDo6c2l6ZV90IGkgPSAwOyBpICE9IGlucHV0LnNpemUoKTsgKytpKSB7CiAgICAgICAgdi5wdXNoX2JhY2soe2lucHV0W2ldLCBpfSk7CiAgICB9CiAgICBzdGQ6OnNvcnQoYmVnaW4odiksIGVuZCh2KSk7CiAgICBmb3IgKGF1dG8gaXQgPSBiZWdpbih2KTsgaXQgIT0gZW5kKHYpOyApIHsKICAgICAgICBhdXRvIG5leHQgPSBmaW5kX2lmKGl0LCBlbmQodiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbaXRdKGNvbnN0IHN0ZDo6cGFpcjxpbnQsIHN0ZDo6c2l6ZV90PiYgcmhzKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtyZXR1cm4gaXQtPmZpcnN0ICE9IHJocy5maXJzdDt9KTsKICAgICAgICBpZiAobmV4dCAtIGl0ID49IDMpIHsKICAgICAgICAgICAgc3RkOjpjb3V0IDw8IGl0LT5maXJzdCA8PCAiOiI7CiAgICAgICAgICAgIGZvciAoOyBpdCAhPSBuZXh0OyArK2l0KSB7CiAgICAgICAgICAgICAgICBzdGQ6OmNvdXQgPDwgIiAiIDw8IGl0LT5zZWNvbmQ7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgc3RkOjpjb3V0IDw8IHN0ZDo6ZW5kbDsKICAgICAgICB9CiAgICAgICAgaXQgPSBuZXh0OwogICAgfQp9CgppbnQgbWFpbihpbnQgYXJnYywgY2hhciAqYXJndltdKQp7CiAgICBkaXNwbGF5RnJlcXVlbnROdW1iZXIoezYsNCw0LDUsMiw0LDQsMyw1LDV9KTsKICAgIHJldHVybiAwOwp9Cg==