LINQ : Analyse de flux de données avec regroupement et filtrage par fenêtre glissante

C# Hard LINQ

Tâche «LINQ : Analyse de flux de données avec regroupement et filtrage par fenêtre glissante»

Écrivez un programme en C# qui lit une séquence d’entiers (au moins 10). En utilisant LINQ, effectuez une analyse : regroupez les nombres par valeur, en ne conservant que les groupes où le nombre d’éléments est supérieur à 1. Ensuite, pour chaque groupe de ce type, calculez la moyenne arithmétique de tous les éléments qui se trouvent dans une fenêtre glissante de taille 3 (c’est-à-dire pour chaque triplet d’éléments consécutifs dans la séquence d’origine, où au moins un élément appartient au groupe). Si la fenêtre contient au moins un élément du groupe, ajoutez sa moyenne au résultat. Affichez les moyennes triées par ordre décroissant avec une précision de deux décimales. S’il n’y a pas de fenêtre correspondante, affichez "No data".

Format d\ entrée

Première ligne : un entier N (10 ≤ N ≤ 1000). Ensuite, N lignes, chacune contenant un entier.

Format de sortie

Une chaîne avec des nombres séparés par un espace, chacun avec deux décimales, triés par ordre décroissant. Ou "No data".

Exemples

Exemple 1

ENTRÉE
12 1 2 2 3 4 4 5 6 6 7 8 8
SORTIE
7.67 7.00 6.33 5.67 5.00 4.33 3.67 3.00 2.33 1.67

Exemple 2

ENTRÉE
3 1 2 3
SORTIE
No data
main.cs