#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
const int maxn=100010;
double sum[maxn];
int q[maxn];
double cross(int i,int j,int k){
double tmp;
tmp=(k-i)*(sum[j]-sum[i])-(j-i)*(sum[k]-sum[i]);
return tmp;
}
double max(double a,double b){
return a>b?a:b;
}
int Input(){
char c;
int ans;
while(c=getchar(),c<'0' || c>'9') ;
ans=c-'0';
while(c=getchar(),c>='0' && c<='9')
ans=ans*10+c-'0';
return ans;
}
double f(int i,int k){
i=q[i];
return (sum[k]-sum[i])/(k-i);
}
int main(){
//freopen("input.txt","r",stdin);
int n,k;
while(~scanf("%d%d",&n,&k)){
sum[0]=0;
int i,j;
for(i=1;i<=n;i++)
sum[i]=sum[i-1]+Input();
int head=0,rear=0;
double ans=0;
for(i=k;i<=n;i++){
j=i-k;
while(head<rear && cross(q[rear-1],q[rear],j)>=0)
rear--;
q[++rear]=j;
while(head<rear && f(head+1,i)>=f(head,i))
head++;
ans=max(ans,f(head,i));
}
printf("%.2lf\n",ans);
}
return 0;
}
tjut 2993
最新推荐文章于 2016-08-31 17:14:15 发布