import math

from itertools import permutations



def solve():

    n = int(eval(input()))

    cord = [list(map(int, input().split())) for _ in range(n)]

    # print(cord)

    # dist = {}

    # for i in range(n):

    #     for j in range(n):

    #         if i == j: continue

    #         d = math.sqrt(pow(cord[i][0] - cord[j][0], 2) + pow(cord[i][1] - cord[j][1], 2))

    #         dist[(i, j)] = d

    # print(dist)

    sm = 0

    for cnt, i in enumerate(permutations(list(range(n)))):

        # print(i)

        for j in range(1, n):

            # print('aaa', i[j-1], i[j])

            # d = dist[(i[j-1], i[j])]

            s = i[j-1]

            t = i[j]

            d = math.sqrt(pow(cord[s][0] - cord[t][0], 2) + pow(cord[s][1] - cord[t][1], 2))

            # print(d)

            sm = sm + d

    print((sm / (cnt+1)))





if __name__ == '__main__':

    solve()

import sys

sys.setrecursionlimit(10 ** 6)

# input = sys.stdin.readline    ####

int1 = lambda x: int(x) - 1

def II(): return int(eval(input()))



def MI(): return list(map(int, input().split()))

def MI1(): return list(map(int1, input().split()))



def LI(): return list(map(int, input().split()))

def LI1(): return list(map(int1, input().split()))

def LLI(rows_number): return [LI() for _ in range(rows_number)]



def printlist(lst, k='\n'): return k.join(list(map(str, lst)))

INF = float('inf')

from math import sqrt

from itertools import permutations

def solve():

    n = II()



    town = []

    for i in range(n):

        x, y = MI()

        town.append((x, y))



    def f(t1, t2):

        x1, y1 = t1

        x2, y2 = t2

        return sqrt( (x1 - x2) ** 2 + (y1 - y2) ** 2)



    tot = 0

    cnt = 0

    for t in permutations(town, n):

        cnt += 1

        d = 0

        # print(t)

        for i in range(n-1):

            j = i + 1

            d = f(t[i], t[j])

            # print(d)

            tot += d



    print((tot / cnt))





if __name__ == '__main__':

    solve()

import math
from itertools import permutations


def solve():
    n = int(eval(input()))
    cord = [list(map(int, input().split())) for _ in range(n)]
    # print(cord)
    # dist = {}
    # for i in range(n):
    #     for j in range(n):
    #         if i == j: continue
    #         d = math.sqrt(pow(cord[i][0] - cord[j][0], 2) + pow(cord[i][1] - cord[j][1], 2))
    #         dist[(i, j)] = d
    # print(dist)
    sm = 0
    for cnt, i in enumerate(permutations(list(range(n)))):
        # print(i)
        for j in range(1, n):
            # print('aaa', i[j-1], i[j])
            # d = dist[(i[j-1], i[j])]
            s = i[j - 1]
            t = i[j]
            d = math.sqrt(
                pow(cord[s][0] - cord[t][0], 2) + pow(cord[s][1] - cord[t][1], 2)
            )
            # print(d)
            sm = sm + d
    print((sm / (cnt + 1)))


if __name__ == "__main__":
    solve()

import sys

sys.setrecursionlimit(10**6)
# input = sys.stdin.readline    ####
int1 = lambda x: int(x) - 1


def II():
    return int(eval(input()))


def MI():
    return list(map(int, input().split()))


def MI1():
    return list(map(int1, input().split()))


def LI():
    return list(map(int, input().split()))


def LI1():
    return list(map(int1, input().split()))


def LLI(rows_number):
    return [LI() for _ in range(rows_number)]


def printlist(lst, k="\n"):
    return k.join(list(map(str, lst)))


INF = float("inf")
from math import sqrt
from itertools import permutations


def solve():
    n = II()
    town = []
    for i in range(n):
        x, y = MI()
        town.append((x, y))

    def f(t1, t2):
        x1, y1 = t1
        x2, y2 = t2
        return sqrt((x1 - x2) ** 2 + (y1 - y2) ** 2)

    tot = 0
    cnt = 0
    for t in permutations(town, n):
        cnt += 1
        d = 0
        # print(t)
        for i in range(n - 1):
            j = i + 1
            d = f(t[i], t[j])
            # print(d)
            tot += d
    print((tot / cnt))


if __name__ == "__main__":
    solve()

-import math +import sys + +sys.setrecursionlimit(10**6) +# input = sys.stdin.readline    #### +int1 = lambda x: int(x) - 1 + + +def II(): +    return int(eval(input())) + + +def MI(): +    return list(map(int, input().split())) + + +def MI1(): +    return list(map(int1, input().split())) + + +def LI(): +    return list(map(int, input().split())) + + +def LI1(): +    return list(map(int1, input().split())) + + +def LLI(rows_number): +    return [LI() for _ in range(rows_number)] + + +def printlist(lst, k="\n"): +    return k.join(list(map(str, lst))) + + +INF = float("inf") +from math import sqrt -    n = int(eval(input())) -    cord = [list(map(int, input().split())) for _ in range(n)] -    # print(cord) -    # dist = {} -    # for i in range(n): -    #     for j in range(n): -    #         if i == j: continue -    #         d = math.sqrt(pow(cord[i][0] - cord[j][0], 2) + pow(cord[i][1] - cord[j][1], 2)) -    #         dist[(i, j)] = d -    # print(dist) -    sm = 0 -    for cnt, i in enumerate(permutations(list(range(n)))): -        # print(i) -        for j in range(1, n): -            # print('aaa', i[j-1], i[j]) -            # d = dist[(i[j-1], i[j])] -            s = i[j - 1] -            t = i[j] -            d = math.sqrt( -                pow(cord[s][0] - cord[t][0], 2) + pow(cord[s][1] - cord[t][1], 2) -            ) +    n = II() +    town = [] +    for i in range(n): +        x, y = MI() +        town.append((x, y)) + +    def f(t1, t2): +        x1, y1 = t1 +        x2, y2 = t2 +        return sqrt((x1 - x2) ** 2 + (y1 - y2) ** 2) + +    tot = 0 +    cnt = 0 +    for t in permutations(town, n): +        cnt += 1 +        d = 0 +        # print(t) +        for i in range(n - 1): +            j = i + 1 +            d = f(t[i], t[j]) -            sm = sm + d -    print((sm / (cnt + 1))) +            tot += d +    print((tot / cnt))