Сжатие последовательности с помощью итераторов и комбинаторов

Rust Сложный iterators

Задача «Сжатие последовательности с помощью итераторов и комбинаторов»

Вам дана последовательность целых чисел. Необходимо реализовать функцию, которая сжимает последовательность: заменяет подряд идущие одинаковые числа на пару (число, количество повторений). Используйте итераторы и комбинаторы (например, map, filter, fold, scan, collect). Входные данные: сначала целое N (1 ≤ N ≤ 10^5), затем N целых чисел. Выведите сжатую последовательность в виде пар (число, количество) через пробел. Если последовательность пустая (N=0), вывести пустую строку.

Формат ввода

Целое N, затем N целых чисел через пробел.

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

Пары (число, количество) через пробел. Каждая пара: число и количество через запятую без пробела. Если N=0, вывести пустую строку.

Примеры

Пример 1

ВВОД
ВЫВОД

Пример 2

ВВОД
1 42
ВЫВОД
42,1

Пример 3

ВВОД
ВЫВОД
main.rs