def main():

    from collections import namedtuple

    from itertools import permutations

    from math import factorial



    City = namedtuple('City', 'x y')



    def dist(a: City, b: City) -> float:

        dx = a.x - b.x

        dy = a.y - b.y

        return (dx * dx + dy * dy) ** 0.5



    N = int(eval(input()))



    cities = []

    for _ in range(N):

        x, y = list(map(int, input().split()))

        c = City(x=x, y=y)

        cities.append(c)



    total = 0

    for perm in permutations(cities):

        it = iter(perm)

        p = next(it)



        for city in it:

            total += dist(p, city)

            p = city



    ans = total / factorial(N)

    print(ans)





if __name__ == '__main__':

    main()



# import sys

#

# sys.setrecursionlimit(10 ** 7)

#

# input = sys.stdin.readline

# rstrip()

# int(input())

# map(int, input().split())

def main():

    from collections import namedtuple

    from itertools import combinations



    City = namedtuple('City', 'x y')



    def dist(a: City, b: City) -> float:

        dx = a.x - b.x

        dy = a.y - b.y

        return (dx * dx + dy * dy) ** 0.5



    N = int(eval(input()))



    cities = []

    for _ in range(N):

        x, y = list(map(int, input().split()))

        c = City(x=x, y=y)

        cities.append(c)



    total = 0

    for comb in combinations(cities, r=2):

        total += dist(*comb)



    ans = total * 2 / N

    print(ans)





if __name__ == '__main__':

    main()



# 特定の2点を固定し、それ以外を並べる + 固定順を逆にする

# [oo]ooo... これを4個の要素の並び替えを見なす

# (n-1)! * 2!

# この2点間の移動が含まれる並び順は、(n-1)! * 2!通り

# 各2点間の距離の総和*(n-1)! * 2!通り / n!

# 各2点間の距離の総和*2/n

def main():
    from collections import namedtuple
    from itertools import permutations
    from math import factorial

    City = namedtuple("City", "x y")

    def dist(a: City, b: City) -> float:
        dx = a.x - b.x
        dy = a.y - b.y
        return (dx * dx + dy * dy) ** 0.5

    N = int(eval(input()))
    cities = []
    for _ in range(N):
        x, y = list(map(int, input().split()))
        c = City(x=x, y=y)
        cities.append(c)
    total = 0
    for perm in permutations(cities):
        it = iter(perm)
        p = next(it)
        for city in it:
            total += dist(p, city)
            p = city
    ans = total / factorial(N)
    print(ans)


if __name__ == "__main__":
    main()
# import sys
#
# sys.setrecursionlimit(10 ** 7)
#
# input = sys.stdin.readline
# rstrip()
# int(input())
# map(int, input().split())

def main():
    from collections import namedtuple
    from itertools import combinations

    City = namedtuple("City", "x y")

    def dist(a: City, b: City) -> float:
        dx = a.x - b.x
        dy = a.y - b.y
        return (dx * dx + dy * dy) ** 0.5

    N = int(eval(input()))
    cities = []
    for _ in range(N):
        x, y = list(map(int, input().split()))
        c = City(x=x, y=y)
        cities.append(c)
    total = 0
    for comb in combinations(cities, r=2):
        total += dist(*comb)
    ans = total * 2 / N
    print(ans)


if __name__ == "__main__":
    main()
# 特定の2点を固定し、それ以外を並べる + 固定順を逆にする
# [oo]ooo... これを4個の要素の並び替えを見なす
# (n-1)! * 2!
# この2点間の移動が含まれる並び順は、(n-1)! * 2!通り
# 各2点間の距離の総和*(n-1)! * 2!通り / n!
# 各2点間の距離の総和*2/n

-    from itertools import permutations -    from math import factorial +    from itertools import combinations -    for perm in permutations(cities): -        it = iter(perm) -        p = next(it) -        for city in it: -            total += dist(p, city) -            p = city -    ans = total / factorial(N) +    for comb in combinations(cities, r=2): +        total += dist(*comb) +    ans = total * 2 / N -# import sys -# -# sys.setrecursionlimit(10 ** 7) -# -# input = sys.stdin.readline -# rstrip() -# int(input()) -# map(int, input().split()) +# 特定の2点を固定し、それ以外を並べる + 固定順を逆にする +# [oo]ooo... これを4個の要素の並び替えを見なす +# (n-1)! * 2! +# この2点間の移動が含まれる並び順は、(n-1)! * 2!通り +# 各2点間の距離の総和*(n-1)! * 2!通り / n! +# 各2点間の距離の総和*2/n