# -*- coding: utf-8 -*-

from statistics import mean

from math import factorial as fact



n,a,b = list(map(int, input().split()))

v = sorted([int(x) for x in input().split()], reverse=True)

sel = v[:a]

print((mean(sel)))



vn = v.count(sel[-1])

na = sel.count(sel[-1])

nb = min(b-a, vn-na)

# print(na,nb,vn,len(sel),sel[-1])



if na!=len(sel):

    print((fact(vn)//(fact(na)*fact(vn-na))))

elif nb==0:

    print((1))

else:

    ret = 0

    for bi in range(na,na+nb+1):

        ret += fact(vn)//(fact(bi)*fact(vn-bi))

    print(ret)

# -*- coding: utf-8 -*-

from math import factorial as fact

def comb(n,r):

    return fact(n) // (fact(r)*fact(n-r))



n,a,b = list(map(int, input().split()))

vl = list(map(int, input().split()))

vl.sort(reverse=True)



res_avg = sum(vl[:a])/a

res_cnt = 0

last_v = vl[a-1]



cnt_all = 0

for v in vl:

    if v==last_v:

        cnt_all += 1



for m in range(a,b+1):

    if sum(vl[:m])/m == res_avg:

        cnt_in = 0

        for i in range(m):

            if last_v==vl[i]:

                cnt_in += 1

        res_cnt += comb(cnt_all, cnt_in)



print(("{:6f}".format(res_avg)))

print(res_cnt)

# -*- coding: utf-8 -*-
from statistics import mean
from math import factorial as fact

n, a, b = list(map(int, input().split()))
v = sorted([int(x) for x in input().split()], reverse=True)
sel = v[:a]
print((mean(sel)))
vn = v.count(sel[-1])
na = sel.count(sel[-1])
nb = min(b - a, vn - na)
# print(na,nb,vn,len(sel),sel[-1])
if na != len(sel):
    print((fact(vn) // (fact(na) * fact(vn - na))))
elif nb == 0:
    print((1))
else:
    ret = 0
    for bi in range(na, na + nb + 1):
        ret += fact(vn) // (fact(bi) * fact(vn - bi))
    print(ret)

# -*- coding: utf-8 -*-
from math import factorial as fact


def comb(n, r):
    return fact(n) // (fact(r) * fact(n - r))


n, a, b = list(map(int, input().split()))
vl = list(map(int, input().split()))
vl.sort(reverse=True)
res_avg = sum(vl[:a]) / a
res_cnt = 0
last_v = vl[a - 1]
cnt_all = 0
for v in vl:
    if v == last_v:
        cnt_all += 1
for m in range(a, b + 1):
    if sum(vl[:m]) / m == res_avg:
        cnt_in = 0
        for i in range(m):
            if last_v == vl[i]:
                cnt_in += 1
        res_cnt += comb(cnt_all, cnt_in)
print(("{:6f}".format(res_avg)))
print(res_cnt)

-from statistics import mean + +def comb(n, r): +    return fact(n) // (fact(r) * fact(n - r)) + + -v = sorted([int(x) for x in input().split()], reverse=True) -sel = v[:a] -print((mean(sel))) -vn = v.count(sel[-1]) -na = sel.count(sel[-1]) -nb = min(b - a, vn - na) -# print(na,nb,vn,len(sel),sel[-1]) -if na != len(sel): -    print((fact(vn) // (fact(na) * fact(vn - na)))) -elif nb == 0: -    print((1)) -else: -    ret = 0 -    for bi in range(na, na + nb + 1): -        ret += fact(vn) // (fact(bi) * fact(vn - bi)) -    print(ret) +vl = list(map(int, input().split())) +vl.sort(reverse=True) +res_avg = sum(vl[:a]) / a +res_cnt = 0 +last_v = vl[a - 1] +cnt_all = 0 +for v in vl: +    if v == last_v: +        cnt_all += 1 +for m in range(a, b + 1): +    if sum(vl[:m]) / m == res_avg: +        cnt_in = 0 +        for i in range(m): +            if last_v == vl[i]: +                cnt_in += 1 +        res_cnt += comb(cnt_all, cnt_in) +print(("{:6f}".format(res_avg))) +print(res_cnt)