#include <cstdio>
#include <numeric>
#include <algorithm>
#include <iostream>
using namespace std;
long long C(int n, int k) {
    long long ans = 1;
    for (int i = 0; i < k; i++) ans = ans * (n - i) / (i + 1);
    return ans;
}

int main(int argc, char** argv) {
    int n, a, b; cin >> n >> a >> b;
    long long v[n]; for (int i = 0; i < n; i++) cin >> v[i];
    sort(v, v+n);
    long long numer = 0, denom = 1, count = 0;
    for (int k = a; k <= b; k++) {
        long long x = v[n-k];
        int left = lower_bound(v, v+n, x) - v;
        int right = upper_bound(v, v+n, x) - v;
        long long sum = accumulate(v+n-k, v+n, 0LL);
        if (numer * k < sum * denom) {
            numer = sum; denom = k; count = C(right - left, right - n + k);
        }
        else if (numer * k == sum * denom) count += C(right - left, right - n + k);
    }
    printf("%.6f\n%lld\n", (double)numer/denom, count);
}
