#include<iostream>
#include<queue>
using namespace std;
#define int long long
signed main(){
int n,k,l;
cin>>n>>k>>l;int sum=0;
queue<int> q,q2;
int sum2=0,moresize=0;
long double ans=0;
for(int i=0;i<n;i++){
int a;
cin>>a;
q.push(a);
sum+=a;
if(q.size()>k){
sum-=q.front();
moresize++;
sum2+=q.front();
q2.push(q.front());
q.pop();
}
while(moresize+q.size()>l||1.0*sum2/moresize+1E-6<1.0*sum/q.size()){
sum2-=q2.front();
q2.pop();
moresize--;
}
if(q.size()==k)ans=max(ans,(long double)(1.0)*(sum2+sum)/(moresize+q.size()));
}
printf("%.3Lf",ans);
}
求助wa on #9 line1colmun6,是不是因为精度问题