Задача G. Частотный анализ текста

Входной файл:Стандартный вход   Ограничение времени:2 сек
Выходной файл:Стандартный выход   Ограничение памяти:128 Мб

Условие

Одной из классических задач при работе с текстом является частотный анализ.

Используя Java Stream API, составьте "рейтинг" слов исходного текста по их количеству в тексте (по убыванию) и верните первые N позиций.

Слова, встречающиеся одинаковое количество раз, должны быть отсортированы лексикографически.

При решении задачи используйте следующий класс:


import java.util.*;
import java.util.stream.*;

public class Solution
{
  public static Stream<String> rate(int n, Stream<String> data)
  {
    // Ваш код
  }
}
  

Формат входных данных

На вход вашей функции подается Stream слов, которые вместе представляют анализируемый вами текст

Все слова преобразованы к нижнему регистру.

Формат выходных данных

Код решения должен содержать только класс Solution с реализацией функции rate. Он не должен ничего выводить.

Каждая строка выходного потока должна быть отформатирована в следующем виде: [слово] [количество]

Ограничения

1 ≤ N ≤ 100

Примеры тестов

Стандартный вход Стандартный выход
1
5
b a b b c cd a a a a
bab a ba lol c a b
p ab c c d e f g h i j k l m n o p q r s t u v w x y z
b a
a 8
b 5
c 4
p 2
ab 1

0.118s 0.013s 15