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;
}
posted @ 2021-12-16 15:09  Eason_AC  阅读(42)  评论(0)    收藏  举报