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

import sys,copy,math,heapq,itertools as it,fractions,re,bisect,collections



def combinations(n, r):

    res = 1

    for i in range(n - r + 1, n + 1):

        res *= i

    for i in range(2, r + 1):

        res /= i

    return res



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

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

v.sort(reverse = True)



cnt = collections.Counter(v)



mx = sum(v[:A]) 

comb = 0

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



    tmp_cnt = collections.Counter(v[:n])

    tmp = 1

    for key, val in list(tmp_cnt.items()):

        tmp *= combinations(cnt[key], val)



    if A*sum(v[:n]) == n*mx:

        comb += tmp 



print("%.10f" % (mx*1.0/A))

print(comb) 

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

from collections import Counter



def combinations(n, r):

    res = 1

    for i in range(n - r + 1, n + 1):

        res *= i

    for i in range(2, r + 1):

        res /= i

    return res



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

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

v.sort(reverse = True)

cnt = Counter(v)



mx = sum(v[:A]) 

comb = 0

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

    tmp = 1

    for key, val in list(Counter(v[:n]).items()):

        tmp *= combinations(cnt[key], val)



    if A*sum(v[:n]) == n*mx:

        comb += tmp 



print("%.10f" % (mx*1.0/A))

print(comb) 

# -*- coding: utf-8 -*-
import sys, copy, math, heapq, itertools as it, fractions, re, bisect, collections


def combinations(n, r):
    res = 1
    for i in range(n - r + 1, n + 1):
        res *= i
    for i in range(2, r + 1):
        res /= i
    return res


N, A, B = list(map(int, input().split()))
v = list(map(int, input().split()))
v.sort(reverse=True)
cnt = collections.Counter(v)
mx = sum(v[:A])
comb = 0
for n in range(A, B + 1):
    tmp_cnt = collections.Counter(v[:n])
    tmp = 1
    for key, val in list(tmp_cnt.items()):
        tmp *= combinations(cnt[key], val)
    if A * sum(v[:n]) == n * mx:
        comb += tmp
print("%.10f" % (mx * 1.0 / A))
print(comb)

# -*- coding: utf-8 -*-
from collections import Counter


def combinations(n, r):
    res = 1
    for i in range(n - r + 1, n + 1):
        res *= i
    for i in range(2, r + 1):
        res /= i
    return res


N, A, B = list(map(int, input().split()))
v = list(map(int, input().split()))
v.sort(reverse=True)
cnt = Counter(v)
mx = sum(v[:A])
comb = 0
for n in range(A, B + 1):
    tmp = 1
    for key, val in list(Counter(v[:n]).items()):
        tmp *= combinations(cnt[key], val)
    if A * sum(v[:n]) == n * mx:
        comb += tmp
print("%.10f" % (mx * 1.0 / A))
print(comb)

-import sys, copy, math, heapq, itertools as it, fractions, re, bisect, collections +from collections import Counter -cnt = collections.Counter(v) +cnt = Counter(v) -    tmp_cnt = collections.Counter(v[:n]) -    for key, val in list(tmp_cnt.items()): +    for key, val in list(Counter(v[:n]).items()):