题目:
农民约翰的农场由一排长的N(1 <= N <= 100,000)田地组成。每个字段包含一定数量的奶牛,1 <= ncows <= 2000.
FJ想要围绕这些字段的连续组建立围栏,以便最大化该块内每个字段的平均奶牛数量。该块必须至少包含F(1 <= F <= N)个字段,其中F作为输入给出。
在给定约束的情况下,计算最大化平均值的围栏布局。
输入:
第1行:两个以空格分隔的整数,N和F.
第2…N + 1行:每行包含一个整数,即字段中的奶牛数量。第2行给出字段1中的奶牛数量,第3行给出字段2中的数字,依此类推。
输出:
第1行:单个整数,是最大平均值的1000倍。不执行舍入,只打印1000 * ncows / nfields的整数。
样例输入:
10 6
6
4
2
10
3
8
5
9
4
1
样例输出:
6500
思路:
这题可以转化为"是否存在一个长度不小于x的子段,子段和(求和)非负",然后我们就可以二分查找这个x,中间还要利用前缀和求和。
C o d e Code Code:
#include<cstdio>
#include<iostream>
#define