#include <iostream>
#include <vector>
#include <map>
#include <algorithm>
#include <utility>
#include <iomanip>
#include <cmath>
using Int = long long;
using namespace std;
#define REP(i,n) for(int i=0;i<n;i++)
Int comb(Int x, Int y)
{
    if (y == 0) return 1;
    if (x - y < y) return comb(x, x - y);
    return comb(x-1, y-1) * x / y;
}
int main()
{
    int N, A, B; cin >> N >> A >> B;
    vector<Int> V(N);
    for(auto& i : V) cin >> i;
    sort(V.begin(), V.end(), [](Int x, Int y){ return x > y; });
    Int sum = 0;
    REP(i, A) sum += V[i];
    int cnt = 0, cntin = 0;
    REP(i, N) if (V[i] == V[A-1]) cnt++;
    REP(i, A) if (V[i] == V[A-1]) cntin++;
    if (cntin == A) {
        Int c = 0;
        for (int i = A; i <= min(B, cnt); i++) c += comb(cnt, i);
        cout << V[0] << '\n' << c << endl;
    } else {
        cout << setprecision(20) << (1.0 * sum / A) << '\n' << comb(cnt, cntin) << endl;
    }
    return 0;
}