import java.util.*

fun main(args: Array<String>) {
    val sc = Scanner(System.`in`)

    val N = sc.nextInt()
    val A = sc.nextInt()
    val B = sc.nextInt()
    val v = ArrayList<Long>()

    for (i in 0 until N) {
        v.add(sc.nextLong())
    }

    v.sort()
    v.reverse()

    var sum = 0L
    for (i in 0 until A) {
        sum += v[i]
    }

    System.out.printf("%1.10f\n", sum.toDouble() / A)

    val a = v.indexOfFirst { n -> n == v[(A-1)] }
    val b = v.indexOfLast { n -> n == v[(A-1)] }
    val m = b - a + 1;

    val comb = Array(60) { Array<Long>(60) {0L} }

    comb[0][0] = 1
    for (i in 1 until 60) {
        comb[i][0] = 1
        for(j in 1..i) {
            comb[i][j] = comb[i - 1][j - 1] + comb[i - 1][j]
        }
    }

    var res = 0L
    if (v[0] == v[A - 1]) {
        for (i in A..B) {
            if (v[(i - 1)] != v[(A - 1)]) {
                continue
            }

            res += comb[m][(i - a)]
        }
    } else {
        res += comb[m][A - a]
    }

    println(res)
}