LINQ: 数据流分析——基于滑动窗口的分组与过滤

C# Hard LINQ

任务 «LINQ: 数据流分析——基于滑动窗口的分组与过滤»

编写一个C#程序,读取一个整数序列(至少10个)。使用LINQ进行分析:按值对数字进行分组,仅保留元素数量大于1的组。然后,对于每个这样的组,计算滑动窗口大小为3的所有元素的算术平均值(即,在原始序列中每三个连续元素组成的三元组中,至少有一个元素属于该组)。如果窗口包含至少一个该组的元素,则将其平均值添加到结果中。输出按降序排序的平均值,精确到小数点后两位。如果没有符合条件的窗口,则输出"No data"。

输入格式

在第一行输入一个整数 N (10 ≤ N ≤ 1000)。接下来有 N 行,每行包含一个整数。

输出格式

<p>一个由空格分隔的数字字符串,每个数字保留两位小数,按降序排列。或者输出 "No data"。</p>

示例

示例 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