https://atcoder.jp/contests/abc155/tasks/abc155_c
解説
https://atcoder.jp/contests/abc155/submissions/10161782
文字列をそれぞれ数えて、一番頻度の高いやつをまとめて答えるという問題。
指示されていることを実装するのだが、c++であればmapを使うのが最も簡単。
map<string,int>で使い、intで数えていく。
valueの最大値miを計算し、value=miであるkeyを答えればいい。
mapはkeyでソートされているため、順番に答えれば自然と辞書順で小さい順に出力できる。
int N; //--------------------------------------------------------------------------------------------------- void _main() { cin >> N; map<string, int> cnt; rep(i, 0, N) { string s; cin >> s; cnt[s]++; } int ma = -1; fore(p, cnt) chmax(ma, p.second); fore(p, cnt) if (p.second == ma) printf("%s\n", p.first.c_str()); }