Gerador de relatórios com extensões para coleções aninhadas

Kotlin Hard extensions

Tarefa «Gerador de relatórios com extensões para coleções aninhadas»

Escreva um programa Kotlin que, usando funções de extensão para List<Map<String, Any>>, implemente a geração de um relatório: aplique sequencialmente filtragem por valor de chave string, ordenação por chave inteira, agrupamento por chave string e cálculo da soma de um campo inteiro dentro de cada grupo. Dados de entrada: número N (quantidade de registros), depois N linhas no formato 'chave1=valor1,chave2=valor2,...'. Dados de saída: para cada grupo, exibir 'chave_do_grupo: soma', onde soma é a soma dos valores do campo 'score' para os registros do grupo. Se após a filtragem não restarem registros, exibir 'empty'.

Formato de Entrada

Um número inteiro N (1 ≤ N ≤ 1000). Em seguida, N linhas, cada uma contendo pares 'chave=valor' separados por vírgulas. Chaves: 'name' (String), 'group' (String), 'score' (Int). Os valores podem conter apenas letras latinas, dígitos e espaços. Todos os registros são válidos.

Formato de Saída

Linhas no formato 'chave_do_grupo: soma' para cada grupo após o processamento, ordenadas pelo valor crescente de chave_do_grupo. Se a lista resultante estiver vazia, exibir 'empty'.

Exemplos

Exemplo 1

ENTRADA
1 name=Frank,group=B,score=100
SAÍDA
B: 100
main.kt