题目描述
给定一个长度为n的正整数序列A。求一个平均数最大的,长度不小于L的子序列。
输入格式
第一行,n和L;
n个正整数,表示A。输出格式
一个整数,表示答案的1000倍(不用四舍五入,直接输出)。
输入样例
10 6
6 4 2 10 3 8 5 9 4 1
输出样例
6500
本题需要用二分,直接上代码
#include <iostream>
#include <cstdio>
#include <vector>
#define maxx 400005
using namespace std;
double a[100005];
double b[100005];
double c[100005];
int main(){
int n,f;
cin >> n >> f;
for (int i=1;i<=n;i++){
cin >> a[i];
}
double eps = 1e-5;
double l = -1e6,r=1e6;
while (r - l > eps){
double mid = (l + r) / 2;
for (int i=1;i<=n;i++) b[i] = a[i] - mid;
for (int i=1;i<=n;i