import math

from collections import Counter



N, A, B = list(map(int, input().split()))

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



v.sort(reverse = True)

cnt_v = Counter(v)

ave = []



for i in range(A, B+1):

    ave.append(sum(v[0:i]) / i)



max_ave = max(ave)

ans = 0



for j in range(B-A+1):

    temp = 1

    if ave[j] == max_ave:

        l = v[:A+j]

        cnt_l = Counter(l)

        for key, values in list(cnt_l.items()):

            temp *= (math.factorial(cnt_v[key]) // math.factorial(values) // math.factorial(cnt_v[key] - values))

        ans += temp



print(max_ave)

print(ans)
N,A,B=list(map(int,input().split()))

v=[int(x)for x in input().split()]

v.sort(reverse=True)

a=sum(v[:A])/A

m=min(v[:A])

k=v.count(m)

l=v.index(m)

ans=0

import math

for i in range(A,B+1):

    if i==A:

        ans+=(math.factorial(k)//math.factorial(i-l))//math.factorial(k-i+l)

    else:

        if k-i+l>=0 and a==m:

            ans+=(math.factorial(k)//math.factorial(i-l))//math.factorial(k-i+l)

        else:

            break

            

            

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

print((int(ans)))  
import math
from collections import Counter

N, A, B = list(map(int, input().split()))
v = list(map(int, input().split()))
v.sort(reverse=True)
cnt_v = Counter(v)
ave = []
for i in range(A, B + 1):
    ave.append(sum(v[0:i]) / i)
max_ave = max(ave)
ans = 0
for j in range(B - A + 1):
    temp = 1
    if ave[j] == max_ave:
        l = v[: A + j]
        cnt_l = Counter(l)
        for key, values in list(cnt_l.items()):
            temp *= (
                math.factorial(cnt_v[key])
                // math.factorial(values)
                // math.factorial(cnt_v[key] - values)
            )
        ans += temp
print(max_ave)
print(ans)

N, A, B = list(map(int, input().split()))
v = [int(x) for x in input().split()]
v.sort(reverse=True)
a = sum(v[:A]) / A
m = min(v[:A])
k = v.count(m)
l = v.index(m)
ans = 0
import math

for i in range(A, B + 1):
    if i == A:
        ans += (math.factorial(k) // math.factorial(i - l)) // math.factorial(k - i + l)
    else:
        if k - i + l >= 0 and a == m:
            ans += (math.factorial(k) // math.factorial(i - l)) // math.factorial(
                k - i + l
            )
        else:
            break
print(("{:.6f}".format(a)))
print((int(ans)))

+N, A, B = list(map(int, input().split())) +v = [int(x) for x in input().split()] +v.sort(reverse=True) +a = sum(v[:A]) / A +m = min(v[:A]) +k = v.count(m) +l = v.index(m) +ans = 0 -from collections import Counter -N, A, B = list(map(int, input().split())) -v = list(map(int, input().split())) -v.sort(reverse=True) -cnt_v = Counter(v) -ave = [] -    ave.append(sum(v[0:i]) / i) -max_ave = max(ave) -ans = 0 -for j in range(B - A + 1): -    temp = 1 -    if ave[j] == max_ave: -        l = v[: A + j] -        cnt_l = Counter(l) -        for key, values in list(cnt_l.items()): -            temp *= ( -                math.factorial(cnt_v[key]) -                // math.factorial(values) -                // math.factorial(cnt_v[key] - values) +    if i == A: +        ans += (math.factorial(k) // math.factorial(i - l)) // math.factorial(k - i + l) +    else: +        if k - i + l >= 0 and a == m: +            ans += (math.factorial(k) // math.factorial(i - l)) // math.factorial( +                k - i + l -        ans += temp -print(max_ave) -print(ans) +        else: +            break +print(("{:.6f}".format(a))) +print((int(ans)))