
#include<cstdio>
#include<cmath>
#include<algorithm>
#define ll long long

using namespace std;

ll v[55];
ll ans=0;
void cnt(int a,int b){
	double sum=1;
	if(a>b/2)	
		a=b-a;
	for(int i=b,j=1;i>=b-a+1;i--,j++){
		sum*=i*1.0/j;
	}
	ans+=sum;	
}

bool cmp(ll a,ll b){
	return a>b;//从大到小排序 
}

int main(){
	int n,min_,max_;
	scanf("%d %d %d",&n,&min_,&max_);
	for(int i=1;i<=n;i++){
		scanf("%lld",&v[i]);
	}
	
	sort(v+1,v+n+1,cmp);
	int num=min_;
	double ave=0;
	ave+=v[1];
	int same=1,dsam;
	for(int i=2;i<=min_;i++){
		ave+=v[i];
		if(v[i]==v[i-1]){
			same++;
		}
		else {
			same=1;
		}
	}
	ave/=num;//计算选最少的数时最大平均值
	dsam=min_-same;//已选择的不同的数 

	for(int i=min_+1;v[i]==v[min_]&&i<=n;i++){
		same++;//已选择+未选择的相同的数 
	} 
	if(dsam==0){//如果所有的数都相同 
		for(int k=min_;k<=max_;k++){
			if(k>same)	
				break;
			cnt(k,same);
		}
	}
	else {
		cnt(min_-dsam,same);
	}
	printf("%.6lf\n%lld\n",ave,ans);
	return 0; 
}