Générateur de rapports avec extensions pour collections imbriquées
Kotlin
Hard
extensions
Tâche «Générateur de rapports avec extensions pour collections imbriquées»
Écrivez un programme Kotlin qui, à l’aide de fonctions d’extension pour List<Map<String, Any>>, implémente la génération d’un rapport : applique successivement un filtrage par valeur de clé texte, un tri par clé entière, un regroupement par clé texte et un calcul de la somme d’un champ entier dans chaque groupe. Données d’entrée : un entier N (nombre d’enregistrements), puis N lignes de la forme 'clé1=valeur1,clé2=valeur2,...'. Données de sortie : pour chaque groupe, afficher 'clé_groupe: somme', où somme est la somme des valeurs du champ 'score' pour les enregistrements du groupe. Si après filtrage il ne reste aucun enregistrement, afficher 'empty'.
Format d\ entrée
Un entier N (1 ≤ N ≤ 1000). Ensuite N lignes, chacune contenant des paires 'clé=valeur' séparées par des virgules. Clés : 'name' (String), 'group' (String), 'score' (Int). Les valeurs peuvent contenir uniquement des lettres latines, des chiffres et des espaces. Tous les enregistrements sont valides.
Format de sortie
Lignes de la forme 'clé_groupe: somme' pour chaque groupe après traitement, triées par ordre croissant de clé_groupe. Si la liste résultante est vide, afficher 'empty'.
Exemples
Exemple 1
ENTRÉE
1
name=Frank,group=B,score=100
SORTIE
B: 100
main.kt