def dis(a, b):
return ((a[0] - b[0]) ** 2 + (a[1] - b[1]) ** 2) ** 0.5
def main():
n = int(input())
ind = []
for _ in range(n):
x, y = map(int, input().split())
ind.append((x, y))
inf = float('inf')
start = (0, 0)
end = (1 << n) - 1
dp = [[inf] * n for _ in range(1 << n)]
dp[0][0] = 0
ans = inf
for i in range(n):
dp[1 << i][i] = dis(start, ind[i])
for i in range(1, 1 << n):
for nex in range(n):
for pre in range(n):
if pre != nex and i & (1 << pre) and not i & (1 << nex):
distance = dis(ind[pre], ind[nex])
if i | (1 << nex) < 1 << n:
dp[i | (1 << nex)][nex] = min(dp[i | (1 << nex)][nex], dp[i][pre] + distance)
ans = min(ans, dp[end][nex])
return "%.2f" % ans
print(main())