Compressão de sequência usando iteradores e combinadores

Rust Hard iterators

Tarefa «Compressão de sequência usando iteradores e combinadores»

Você recebe uma sequência de números inteiros. É necessário implementar uma função que comprime a sequência: substitui números iguais consecutivos por um par (número, quantidade de repetições). Use iteradores e combinadores (por exemplo, map, filter, fold, scan, collect). Dados de entrada: primeiro um inteiro N (1 ≤ N ≤ 10^5), depois N números inteiros. Imprima a sequência comprimida na forma de pares (número, quantidade) separados por espaço. Se a sequência estiver vazia (N=0), imprima uma linha vazia.

Formato de Entrada

Inteiro N, depois N números inteiros separados por espaço.

Formato de Saída

Pares (número, quantidade) separados por espaço. Cada par: número e quantidade separados por vírgula sem espaço. Se N=0, imprima uma linha vazia.

Exemplos

Exemplo 1

ENTRADA
SAÍDA

Exemplo 2

ENTRADA
1 42
SAÍDA
42,1

Exemplo 3

ENTRADA
SAÍDA
main.rs