'''

https://atcoder.jp/contests/abc145/tasks/abc145_c

'''

def main():

    import sys

    #input = sys.stdin.readline

    sys.setrecursionlimit(10000000)

    from collections import Counter, deque

    #from collections import defaultdict

    from itertools import combinations, permutations

    #from itertools import accumulate, product

    from math import floor, ceil

    #from operator import itemgetter



    #mod = 1000000007



    N = int(eval(input()))

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

    res = 0

    for path in permutations(grid, N):

        for i in range(N-1):

            res += ((path[i][0]-path[i+1][0])**2 + (path[i][1]-path[i+1][1])**2)**0.5

    a = 1

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

        a *= i

    print((res/a))





if __name__ == '__main__':

    main()
def main():

    import sys

    #input = sys.stdin.readline

    sys.setrecursionlimit(10000000)

    from collections import Counter, deque

    #from collections import defaultdict

    from itertools import combinations, permutations

    #from itertools import accumulate, product

    from math import floor, ceil

    #from operator import itemgetter



    #mod = 1000000007



    N=int(eval(input()))

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

    res=0

    for i in range(N):

        for j in range(N):

            res += ((xy[i][0]-xy[j][0])**2+(xy[i][1]-xy[j][1])**2)**0.5

    print((res/N))



if __name__ == '__main__':

    main()
"""
https://atcoder.jp/contests/abc145/tasks/abc145_c
"""


def main():
    import sys

    # input = sys.stdin.readline
    sys.setrecursionlimit(10000000)
    from collections import Counter, deque

    # from collections import defaultdict
    from itertools import combinations, permutations

    # from itertools import accumulate, product
    from math import floor, ceil

    # from operator import itemgetter
    # mod = 1000000007
    N = int(eval(input()))
    grid = [list(map(int, input().split())) for _ in range(N)]
    res = 0
    for path in permutations(grid, N):
        for i in range(N - 1):
            res += (
                (path[i][0] - path[i + 1][0]) ** 2 + (path[i][1] - path[i + 1][1]) ** 2
            ) ** 0.5
    a = 1
    for i in range(2, N + 1):
        a *= i
    print((res / a))


if __name__ == "__main__":
    main()

def main():
    import sys

    # input = sys.stdin.readline
    sys.setrecursionlimit(10000000)
    from collections import Counter, deque

    # from collections import defaultdict
    from itertools import combinations, permutations

    # from itertools import accumulate, product
    from math import floor, ceil

    # from operator import itemgetter
    # mod = 1000000007
    N = int(eval(input()))
    xy = [list(map(int, input().split())) for _ in range(N)]
    res = 0
    for i in range(N):
        for j in range(N):
            res += ((xy[i][0] - xy[j][0]) ** 2 + (xy[i][1] - xy[j][1]) ** 2) ** 0.5
    print((res / N))


if __name__ == "__main__":
    main()

-""" -https://atcoder.jp/contests/abc145/tasks/abc145_c -""" - - -    grid = [list(map(int, input().split())) for _ in range(N)] +    xy = [list(map(int, input().split())) for _ in range(N)] -    for path in permutations(grid, N): -        for i in range(N - 1): -            res += ( -                (path[i][0] - path[i + 1][0]) ** 2 + (path[i][1] - path[i + 1][1]) ** 2 -            ) ** 0.5 -    a = 1 -    for i in range(2, N + 1): -        a *= i -    print((res / a)) +    for i in range(N): +        for j in range(N): +            res += ((xy[i][0] - xy[j][0]) ** 2 + (xy[i][1] - xy[j][1]) ** 2) ** 0.5 +    print((res / N))