LINQ: Análisis de flujo de datos con agrupación y filtrado por ventana deslizante

C# Hard LINQ

Tarea «LINQ: Análisis de flujo de datos con agrupación y filtrado por ventana deslizante»

Escriba un programa en C# que lea una secuencia de números enteros (al menos 10). Usando LINQ, realice el análisis: agrupe los números por valor, dejando solo aquellos grupos donde la cantidad de elementos sea mayor que 1. Luego, para cada grupo de estos, calcule el promedio aritmético de todos los elementos que se encuentran en una ventana deslizante de tamaño 3 (es decir, para cada tripleta de elementos consecutivos en la secuencia original, donde al menos un elemento pertenezca al grupo). Si la ventana contiene al menos un elemento del grupo, agregue su promedio al resultado. Muestre los promedios ordenados de forma descendente con precisión de dos decimales. Si no hay ventanas adecuadas, muestre "No data".

Formato de entrada

En la primera línea, un número entero N (10 ≤ N ≤ 1000). Luego, N líneas, cada una contiene un número entero.

Formato de salida

Una cadena con números separados por espacio, cada uno con dos decimales, ordenados de forma descendente. O "No data".

Ejemplos

Ejemplo 1

ENTRADA
12 1 2 2 3 4 4 5 6 6 7 8 8
SALIDA
7.67 7.00 6.33 5.67 5.00 4.33 3.67 3.00 2.33 1.67

Ejemplo 2

ENTRADA
3 1 2 3
SALIDA
No data
main.cs