#include <iostream>
#include <map>
#include <string>
#include <queue>
using namespace std;
using freqMap = map<char, int>;
using freqMapElement = typename freqMap::value_type;
struct cmpByValue
{
bool operator()(const freqMapElement* p1, const freqMapElement* p2)
{
return p1->second > p2->second;
}
};
int main()
{
string s = "ASDASDASD";
freqMap freq_map;
for (auto c : s)
{
freq_map[c]++;
}
priority_queue<
freqMapElement*,
std::vector<freqMapElement*>,
cmpByValue> pq;
for (auto &elem : freq_map)
{
pq.push(&elem);
}
freqMapElement* top = pq.top();
cout << top->first << ' ' << top->second << endl;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8bWFwPgojaW5jbHVkZSA8c3RyaW5nPgojaW5jbHVkZSA8cXVldWU+Cgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKdXNpbmcgZnJlcU1hcCA9IG1hcDxjaGFyLCBpbnQ+Owp1c2luZyBmcmVxTWFwRWxlbWVudCA9IHR5cGVuYW1lIGZyZXFNYXA6OnZhbHVlX3R5cGU7CgpzdHJ1Y3QgY21wQnlWYWx1ZQp7Cglib29sIG9wZXJhdG9yKCkoY29uc3QgZnJlcU1hcEVsZW1lbnQqIHAxLCBjb25zdCBmcmVxTWFwRWxlbWVudCogcDIpCgl7CiAgICAJcmV0dXJuIHAxLT5zZWNvbmQgPiBwMi0+c2Vjb25kOwoJfQp9OwoKaW50IG1haW4oKQp7CiAgICBzdHJpbmcgcyA9ICJBU0RBU0RBU0QiOwoKICAgIGZyZXFNYXAgZnJlcV9tYXA7CiAgICBmb3IgKGF1dG8gYyA6IHMpCiAgICB7CiAgICAgICAgZnJlcV9tYXBbY10rKzsKICAgIH0KCglwcmlvcml0eV9xdWV1ZTwKCQlmcmVxTWFwRWxlbWVudCosCgkJc3RkOjp2ZWN0b3I8ZnJlcU1hcEVsZW1lbnQqPiwKCQljbXBCeVZhbHVlPiBwcTsKCiAgICBmb3IgKGF1dG8gJmVsZW0gOiBmcmVxX21hcCkKICAgIHsKICAgICAgICBwcS5wdXNoKCZlbGVtKTsKICAgIH0KCiAgICBmcmVxTWFwRWxlbWVudCogdG9wID0gcHEudG9wKCk7CiAgICBjb3V0IDw8IHRvcC0+Zmlyc3QgPDwgJyAnIDw8IHRvcC0+c2Vjb25kIDw8IGVuZGw7CgogICAgcmV0dXJuIDA7Cn0=