LINQ: Анализ потока данных с группировкой и фильтрацией по скользящему окну

C# Сложный LINQ

Задача «LINQ: Анализ потока данных с группировкой и фильтрацией по скользящему окну»

Напишите программу на C#, которая считывает последовательность целых чисел (не менее 10). Используя LINQ, выполните анализ: сгруппируйте числа по значению, оставив только те группы, где количество элементов больше 1. Затем для каждой такой группы вычислите среднее арифметическое всех элементов, которые находятся в скользящем окне размера 3 (т.е. для каждой тройки подряд идущих элементов в исходной последовательности, где хотя бы один элемент принадлежит группе). Если окно содержит хотя бы один элемент группы, добавьте его среднее в результат. Выведите отсортированные по убыванию средние значения с точностью до двух знаков после запятой. Если подходящих окон нет, выведите "No data".

Формат ввода

В первой строке целое число N (10 ≤ N ≤ 1000). Далее N строк, каждая содержит одно целое число.

Формат вывода

Строка с числами, разделенными пробелом, каждое с двумя знаками после запятой, отсортированными по убыванию. Или "No data".

Примеры

Пример 1

ВВОД
12 1 2 2 3 4 4 5 6 6 7 8 8
ВЫВОД
7.67 7.00 6.33 5.67 5.00 4.33 3.67 3.00 2.33 1.67

Пример 2

ВВОД
3 1 2 3
ВЫВОД
No data
main.cs