#include <iostream>
#include <vector>
#include <cmath>
#include <algorithm>
#include <iomanip>
typedef long long ll;
using namespace std;
int main() {
int n, a, b;
cin >> n >> a >> b;
vector<ll> v(n);
for(int i=0;i<n;i++) {
cin >> v[i];
}
sort(v.begin(), v.end(), greater<ll>());
int max_cnt = 0;
int cnt_a = 0, idx_a;
for(int i=0;i<n;i++) {
if(v[0] == v[i]) max_cnt++;
}
for(int i=0;i<n;i++) {
if(v[i] == v[a-1]) {
cnt_a++;
idx_a = i;
}
}
idx_a++;
ll dp[55][55];
dp[0][0] = 1;
ll ans = 0;
for(int i=1;i<=50;i++) {
for(int j=0;j<=50;j++) {
if(i>0 && j>0)
dp[i][j] = dp[i-1][j] + dp[i-1][j-1];
else
dp[i][j] = dp[i-1][j];
}
}
if(max_cnt > a) {
int lim = min(max_cnt, b);
for(int i=a;i<=lim;i++) {
ans += dp[max_cnt][i];
}
} else {
int lim = idx_a - cnt_a;
ans += dp[cnt_a][a-lim];
}
double ave = 0;
for(int i=0;i<a;i++) {
ave += v[i];
}
cout << fixed << setprecision(6) << ave * 1.0 / a << endl;
cout << ans << endl;
}