from itertools import permutations

from math import factorial



N = int(eval(input()))

cities = [tuple(map(int, input().split())) for _ in range(N)]



dists = [[0] * N for _ in range(N)]

for i in range(N):

    for j in range(i + 1, N):

        dists[i][j] = dists[j][i] = (

            (cities[j][0] - cities[i][0]) ** 2 + (cities[j][1] - cities[i][1]) ** 2

        ) ** 0.5



total_dist = 0

for p in permutations(list(range(N))):

    for i in range(N - 1):

        total_dist += dists[p[i]][p[i + 1]]



print((total_dist / factorial(N)))

import sys

from itertools import permutations

from math import factorial



read = sys.stdin.read

readline = sys.stdin.readline

readlines = sys.stdin.readlines

sys.setrecursionlimit(10 ** 9)

INF = 1 << 60





def distance(p, q):

    return sum((px - qx) ** 2.0 for px, qx in zip(p, q)) ** 0.5





def main():

    N = int(readline())

    C = [tuple(map(int, readline().split())) for _ in range(N)]



    dist = [[0] * N for _ in range(N)]

    for i in range(N):

        for j in range(i + 1, N):

            dist[i][j] = dist[j][i] = distance(C[i], C[j])



    ans = 0

    for perm in permutations(list(range(N))):

        for i in range(N - 1):

            ans += dist[perm[i]][perm[i + 1]]



    print((ans / factorial(N)))

    return





if __name__ == '__main__':

    main()

from itertools import permutations
from math import factorial

N = int(eval(input()))
cities = [tuple(map(int, input().split())) for _ in range(N)]
dists = [[0] * N for _ in range(N)]
for i in range(N):
    for j in range(i + 1, N):
        dists[i][j] = dists[j][i] = (
            (cities[j][0] - cities[i][0]) ** 2 + (cities[j][1] - cities[i][1]) ** 2
        ) ** 0.5
total_dist = 0
for p in permutations(list(range(N))):
    for i in range(N - 1):
        total_dist += dists[p[i]][p[i + 1]]
print((total_dist / factorial(N)))

import sys
from itertools import permutations
from math import factorial

read = sys.stdin.read
readline = sys.stdin.readline
readlines = sys.stdin.readlines
sys.setrecursionlimit(10**9)
INF = 1 << 60


def distance(p, q):
    return sum((px - qx) ** 2.0 for px, qx in zip(p, q)) ** 0.5


def main():
    N = int(readline())
    C = [tuple(map(int, readline().split())) for _ in range(N)]
    dist = [[0] * N for _ in range(N)]
    for i in range(N):
        for j in range(i + 1, N):
            dist[i][j] = dist[j][i] = distance(C[i], C[j])
    ans = 0
    for perm in permutations(list(range(N))):
        for i in range(N - 1):
            ans += dist[perm[i]][perm[i + 1]]
    print((ans / factorial(N)))
    return


if __name__ == "__main__":
    main()

+import sys -N = int(eval(input())) -cities = [tuple(map(int, input().split())) for _ in range(N)] -dists = [[0] * N for _ in range(N)] -for i in range(N): -    for j in range(i + 1, N): -        dists[i][j] = dists[j][i] = ( -            (cities[j][0] - cities[i][0]) ** 2 + (cities[j][1] - cities[i][1]) ** 2 -        ) ** 0.5 -total_dist = 0 -for p in permutations(list(range(N))): -    for i in range(N - 1): -        total_dist += dists[p[i]][p[i + 1]] -print((total_dist / factorial(N))) +read = sys.stdin.read +readline = sys.stdin.readline +readlines = sys.stdin.readlines +sys.setrecursionlimit(10**9) +INF = 1 << 60 + + +def distance(p, q): +    return sum((px - qx) ** 2.0 for px, qx in zip(p, q)) ** 0.5 + + +def main(): +    N = int(readline()) +    C = [tuple(map(int, readline().split())) for _ in range(N)] +    dist = [[0] * N for _ in range(N)] +    for i in range(N): +        for j in range(i + 1, N): +            dist[i][j] = dist[j][i] = distance(C[i], C[j]) +    ans = 0 +    for perm in permutations(list(range(N))): +        for i in range(N - 1): +            ans += dist[perm[i]][perm[i + 1]] +    print((ans / factorial(N))) +    return + + +if __name__ == "__main__": +    main()