8.7 Стандартные контейнеры

8.7.2 Частоты значений

Условие

Дана последовательность целых чисел. С помощью std::map<int, int> подсчитайте количество появлений каждого значения. Выведите различные значения в порядке возрастания вместе с их частотами. Массив счётчиков, сортировка исходных данных и другие ассоциативные контейнеры вместо std::map не допускаются.

Ограничения

Время: 2 секунды. Память: 64 МиБ. Вывод: до 2 МиБ. Язык: C++17.

Входные данные

В первой строке вводится N. Во второй — N целых чисел. Ограничения: 1 ≤ N ≤ 100000, −10⁹ ≤ value ≤ 10⁹.

Выходные данные

В первой строке выведите количество различных значений. Затем для каждого значения в порядке возрастания выведите отдельную строку: значение и количество его появлений через пробел.

Примеры

Вход 1
7
3 -1 3 2 -1 3 0
Ожидаемый выход
4
-1 2
0 1
2 1
3 3
Вход 2
4
5 5 5 5
Ожидаемый выход
1
5 4
Вход 3
3
1000000000 -1000000000 0
Ожидаемый выход
3
-1000000000 1
0 1
1000000000 1

Пробный запуск

Код берётся из редактора. Запуск не создаёт посылку и не влияет на баллы.

Выберите пример или введите свои данные и нажмите «Запустить».

Текущая попытка

Отправьте решение. Этапы и результат появятся здесь автоматически.

Все попытки

Войдите, чтобы видеть свои попытки.

Редактор

Один файл до 64 КиБ · Tab / Shift+Tab — отступ · Esc — выход из редактора · черновик сохраняется для этого аккаунта, задачи и языка.