Оголосимо структуру даних map<string, int> m, в якій будемо підраховувати скільки разів зустрілось кожне слово. Потім слід знайти слово, яке зустрілось найбільшу кількість разів. Якщо таких слів декілька, то виводимо лексикографічно найбільше.
В відображенні m підрахуємо скільки разів зустрілось кожне слово.
map<string,int> m;Читаємо та підраховуємо слова.
cin >> n;
for (i = 0; i < n; i++)
{
cin >> s;
m[s]++;
}Знаходимо слово res, яке зустрічається найбільшу кількість разів mx.
mx = 0;
for (auto x : m)
{
if (x.second >= mx)
{
mx = x.second;
res = x.first;
}
}Виводимо слово з максимальною частотою та саму частоту.
cout << res << " " << mx << endl;import java.util.*;
public class Main
{
public static void main(String[] args)
{
Scanner con = new Scanner(System.in);
TreeMap<String, Integer> tree = new TreeMap<String, Integer>();
int test = con.nextInt();
while(test-- > 0)
{
String s = con.next();
tree.put(s, tree.getOrDefault(s, 0) + 1);
}
int max = -1;
String res = null;
for(String s : tree.keySet())
{
int n = tree.get(s);
if (n >= max)
{
res = s;
max = n;
}
}
System.out.println(res + " " + max);
con.close();
}
}