#include <map>
#include <algorithm>
#include <iostream>
int main()
{
int array[8] = {6,1,7,8,6,6,1,9};
// A map to store num => freq
std::map <int, int> freq;
// A map to store freq(can be duplicate) => num
std::multimap <int, int> freqCounts;
// Store num => frequency
for (int i = 0 ; i < 8; i++)
{
freq[array[i]] += 1;
}
// Now Store freq => num
for(auto const & iter : freq)
{
freqCounts.insert (std::pair<int,int>(iter.second, iter.first));
}
// Print in reverse order i.e. highest frequency first
for (std::multimap<int,int>::reverse_iterator rit=freqCounts.rbegin(); rit!=freqCounts.rend(); ++rit)
{
std::cout << rit->second << " : " << rit->first << '\n';
}
return 0;
}
I2luY2x1ZGUgPG1hcD4KI2luY2x1ZGUgPGFsZ29yaXRobT4KI2luY2x1ZGUgPGlvc3RyZWFtPgoKaW50IG1haW4oKQp7CiAgICBpbnQgYXJyYXlbOF0gPSB7NiwxLDcsOCw2LDYsMSw5fTsKICAgIAogICAgLy8gQSBtYXAgdG8gc3RvcmUgbnVtID0+IGZyZXEgCiAgICBzdGQ6Om1hcCA8aW50LCBpbnQ+IGZyZXE7CiAgICAKICAgIC8vIEEgbWFwIHRvIHN0b3JlIGZyZXEoY2FuIGJlIGR1cGxpY2F0ZSkgPT4gbnVtIAogICAgc3RkOjptdWx0aW1hcCA8aW50LCBpbnQ+IGZyZXFDb3VudHM7CiAgICAKICAgIC8vIFN0b3JlIG51bSA9PiBmcmVxdWVuY3kKICAgIGZvciAoaW50IGkgPSAwIDsgaSA8IDg7IGkrKykKICAgIHsKICAgIAlmcmVxW2FycmF5W2ldXSArPSAxOwogICAgfQogICAgCiAgICAvLyBOb3cgU3RvcmUgZnJlcSA9PiBudW0KCWZvcihhdXRvIGNvbnN0ICYgaXRlciA6IGZyZXEpCgl7CgkJZnJlcUNvdW50cy5pbnNlcnQgKHN0ZDo6cGFpcjxpbnQsaW50PihpdGVyLnNlY29uZCwgaXRlci5maXJzdCkpOyAKCX0KCgkvLyBQcmludCBpbiByZXZlcnNlIG9yZGVyIGkuZS4gaGlnaGVzdCBmcmVxdWVuY3kgZmlyc3QKCWZvciAoc3RkOjptdWx0aW1hcDxpbnQsaW50Pjo6cmV2ZXJzZV9pdGVyYXRvciByaXQ9ZnJlcUNvdW50cy5yYmVnaW4oKTsgcml0IT1mcmVxQ291bnRzLnJlbmQoKTsgKytyaXQpCgl7CiAgICAJc3RkOjpjb3V0IDw8IHJpdC0+c2Vjb25kIDw8ICIgOiAiIDw8IHJpdC0+Zmlyc3QgPDwgJ1xuJzsKCX0KCQogIAlyZXR1cm4gMDsKfQo=