#include<cstdio>
#include<queue>
using namespace std;
priority_queue<double>q;
int n,a,b;
double arr[55];
void dfs(int haschosen, int cur, double sum, int last){
    if(haschosen>=b||cur==n){
        return ;
    }
    if(haschosen+1<a&&(n-1)-cur<(a-haschosen-1)){
        return ;
    }
    if(haschosen+1>=a&&haschosen+1<=b&&cur!=last){
        q.push((sum+arr[cur])/(haschosen+1));
    }
    dfs(haschosen+1,cur+1,sum+arr[cur],cur);
    dfs(haschosen,cur+1,sum,last);
}
int main(){
    scanf("%d%d%d",&n,&a,&b);
    for(int i=0;i<n;i++){
        scanf("%lf",&arr[i]);
    }
    dfs(0,0,0,-1);
    int cnt=1;
    double v=q.top();
    printf("%.6lf\n",v);
    q.pop();
    while(!q.empty()){
        double t=q.top();
        q.pop();
        if(t!=v)
            break;
        cnt++;
    }
    printf("%d\n",cnt);
    return 0;
}
