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 itertools import permutations

    from math import hypot



    N = int(eval(input()))

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



    def dist(c1, c2):

        return hypot(c1[0] - c2[0], c1[1] - c2[1])



    ans = 0

    for perm in permutations(cities, r=2):

        ans += dist(*perm)

    ans /= N



    print(ans)





if __name__ == '__main__':

    main()

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 itertools import permutations
    from math import hypot

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

    def dist(c1, c2):
        return hypot(c1[0] - c2[0], c1[1] - c2[1])

    ans = 0
    for perm in permutations(cities, r=2):
        ans += dist(*perm)
    ans /= N
    print(ans)


if __name__ == "__main__":
    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 +    from itertools import permutations +    from math import hypot -    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 +    cities = [tuple(map(int, input().split())) for _ in range(N)] + +    def dist(c1, c2): +        return hypot(c1[0] - c2[0], c1[1] - c2[1]) + +    ans = 0 +    for perm in permutations(cities, r=2): +        ans += dist(*perm) +    ans /= N -# 特定の2点を固定し、それ以外を並べる + 固定順を逆にする -# [oo]ooo... これを4個の要素の並び替えを見なす -# (n-1)! * 2! -# この2点間の移動が含まれる並び順は、(n-1)! * 2!通り -# 各2点間の距離の総和*(n-1)! * 2!通り / n! -# 各2点間の距離の総和*2/n