CF1003C Intense Heat 题解
Content
给定一个长度为 \(n\) 的数列,求数列中所有长度 \(\geqslant k\) 的区间的最大平均值。
数据范围:\(1\leqslant k,n,a_i\leqslant 5000\)。
Solution
我们通过预处理前缀和之后,再直接暴力枚举所有长度 \(\geqslant k\) 的区间的平均值,取其最大值即可。
Code
int k, n, a[5007], s[5007];
double ans;
int main() {
//This program is written in Windows 10 by Eason_AC
getint(n), getint(k);
_for(i, 1, n) {getint(a[i]); s[i] = s[i - 1] + a[i];}
_for(j, k, n)
_for(i, 1, n - j + 1)
ans = max(ans, (s[i + j - 1] - s[i - 1]) * 1.0 / j);
printf("%.12lf", ans);
return 0;
}