#include <iostream>
#include <vector>
#include <queue>
using namespace std;
bool check(vector<int>& a, int n, int S, int T, double target){
double sum = 0;
double max_avg = 1e-9;
queue<int> q;
for(int i = 0; i < n; i++){
sum += a[i];
q.push(a[i]);
if(q.size() > T){
sum -= q.front();
q.pop();
}
if(q.size() >= S){
double avg = sum / q.size();
max_avg = max(max_avg, avg);
}
}
return max_avg >= target;
}
double binarySearch(vector<int>& a, int n, int S, int T){
double left = 0;
double right = 1e6;
while(right - left >1e-6){
double mid = left + (right - left)/2;
if(check(a, n, S, T, mid)){
left = mid;
}
else right = mid;
}
return left;
}
int main(){
int n, S, T;
cin >> n >> S >>T;
vector<int> a(n);
for(int i = 0; i < n; i++){
cin >> a[i];
}
double avg = binarySearch(a, n, S, T);
printf("%.3lf\n", avg);
return 0;
}
全红了