#include <bits/stdc++.h>
using namespace std;
#define FOR(i,a,b) for (int i = (a); i <= (b); i++)
#define FORD(i,a,b) for (int i = (a); i >= (b); i--)
#define REP(i,a) FOR(i,0,(int)(a)-1)
#define reset(a,b) memset(a,b,sizeof(a))
#define BUG(x) cout << #x << " = " << x << endl
#define PR(x,a,b) {cout << #x << " = "; FOR (_,a,b) cout << x[_] << ' '; cout << endl;}
#define CON(x) {cout << #x << " = "; for(auto i:x) cout << i << ' '; cout << endl;}
#define mod 1000000007
#define pi acos(-1)
#define eps 0.00000001
#define pb push_back
#define sqr(x) (x) * (x)
#define _1 first
#define _2 second
long long n, a, b, lis[55], high, low;
map<long long, long long> m;
long long c[55][55];
int main() {
ios::sync_with_stdio(false);
FOR (i, 1, 50) {
c[i][0] = 1;
FOR (j, 1, i) c[i][j] = c[i][j - 1] * (i - j + 1) / j;
}
cin >> n >> a >> b;
REP (i, n) cin >> lis[i], m[lis[i]]++;
sort(lis, lis + n);
high = lis[n - 1];
low = lis[n - a];
long long s = 0;
FOR (i, n - a, n - 1) s += lis[i];
cout << setprecision(11) << 1.0 * s / a << endl;
if (high == low) {
b = min(b, m[low]);
long long ans = 0;
FOR (i, a, b) ans += c[m[low]][i];
cout << ans;
} else {
int tmp = 0;
FOR (i, n - a, n - 1) if (lis[i] == low) tmp++;
cout << c[m[low]][tmp];
}
}