#include <string>
#include <vector>
#include <map>
#include <algorithm>
#include <iostream>
using namespace std;
int main() {
string characters = "aasa asdfs dfh f ukjyhkh k wse f sdf sdfsdf";
// initialize with 256 entries, one for each character:
vector<int> counts(256);
for (string::size_type i = 0; i <= characters.length(); i++) {
// for each occurrence of a character, increase the value in the vector:
int int_char = (int)characters[i];
counts[int_char]++;
}
vector<int>::iterator most_frequent =
std::max_element(counts.begin(), counts.end());
// getting the character (index within the container, "key"):
cout << (char)(most_frequent - counts.begin()) << ": ";
// the number of occurrences ("value"):
cout << (*most_frequent) << endl;
// Sorted statistics:
multimap<int,int> keyForOccurrence;
for (vector<int>::iterator i = counts.begin(); i != counts.end(); ++i) {
int occurrences = *i;
int character = i - counts.begin();
keyForOccurrence.insert(pair<int,int>(occurrences, character));
}
return 0;
}
I2luY2x1ZGUgPHN0cmluZz4KI2luY2x1ZGUgPHZlY3Rvcj4KI2luY2x1ZGUgPG1hcD4KI2luY2x1ZGUgPGFsZ29yaXRobT4KI2luY2x1ZGUgPGlvc3RyZWFtPgoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCmludCBtYWluKCkgeyAgICAKICAgIHN0cmluZyBjaGFyYWN0ZXJzID0gImFhc2EgYXNkZnMgZGZoIGYgdWtqeWhraCBrIHdzZSBmIHNkZiBzZGZzZGYiOyAgICAKICAgIAogICAgLy8gaW5pdGlhbGl6ZSB3aXRoIDI1NiBlbnRyaWVzLCBvbmUgZm9yIGVhY2ggY2hhcmFjdGVyOgogICAgdmVjdG9yPGludD4gY291bnRzKDI1Nik7CiAgICAKICAgIGZvciAoc3RyaW5nOjpzaXplX3R5cGUgaSA9IDA7IGkgPD0gY2hhcmFjdGVycy5sZW5ndGgoKTsgaSsrKSB7CiAgICAgICAgLy8gZm9yIGVhY2ggb2NjdXJyZW5jZSBvZiBhIGNoYXJhY3RlciwgaW5jcmVhc2UgdGhlIHZhbHVlIGluIHRoZSB2ZWN0b3I6CiAgICAgICAgaW50IGludF9jaGFyID0gKGludCljaGFyYWN0ZXJzW2ldOwogICAgICAgIGNvdW50c1tpbnRfY2hhcl0rKzsgIAogICAgfQogICAgdmVjdG9yPGludD46Oml0ZXJhdG9yIG1vc3RfZnJlcXVlbnQgPQogICAgICAgIHN0ZDo6bWF4X2VsZW1lbnQoY291bnRzLmJlZ2luKCksIGNvdW50cy5lbmQoKSk7CgogICAgLy8gZ2V0dGluZyB0aGUgY2hhcmFjdGVyIChpbmRleCB3aXRoaW4gdGhlIGNvbnRhaW5lciwgImtleSIpOgogICAgY291dCA8PCAoY2hhcikobW9zdF9mcmVxdWVudCAtIGNvdW50cy5iZWdpbigpKSA8PCAiOiAiOwogICAgCiAgICAvLyB0aGUgbnVtYmVyIG9mIG9jY3VycmVuY2VzICgidmFsdWUiKToKICAgIGNvdXQgPDwgKCptb3N0X2ZyZXF1ZW50KSA8PCBlbmRsOwogIAogIAogICAgLy8gU29ydGVkIHN0YXRpc3RpY3M6CiAgICBtdWx0aW1hcDxpbnQsaW50PiBrZXlGb3JPY2N1cnJlbmNlOwogICAgZm9yICh2ZWN0b3I8aW50Pjo6aXRlcmF0b3IgaSA9IGNvdW50cy5iZWdpbigpOyBpICE9IGNvdW50cy5lbmQoKTsgKytpKSB7CiAgICAgICAgaW50IG9jY3VycmVuY2VzID0gKmk7CiAgICAgICAgaW50IGNoYXJhY3RlciA9IGkgLSBjb3VudHMuYmVnaW4oKTsKICAgICAgICBrZXlGb3JPY2N1cnJlbmNlLmluc2VydChwYWlyPGludCxpbnQ+KG9jY3VycmVuY2VzLCBjaGFyYWN0ZXIpKTsKICAgIH0KICAgIAogICAgcmV0dXJuIDA7Cn0=