//P1433
#include <bits/stdc++.h>
using namespace std;
const int N = 20;
double x[N], y[N], dp[1<<N][N], ans = 0x3f3f3f3f;
int n;
double getdis(int i, int j){
return sqrt((x[i]-x[j])*(x[i]-x[j]) + (y[i]-y[j])*(y[i]-y[j]));
}
int main(){
scanf("%d", &n);
for(int i = 0; i < n; ++ i){
scanf("%lf%lf", &x[i], &y[i]);
}
memset(dp, 127, sizeof(dp));
dp[1][0] = 0;
for(int i = 1; i < 1 << n; ++ i)
for(int j = 0; j < n; ++ j) if(i >> j & 1)
for(int k = 0; k < n; ++ k) if((i^1<<j) >> k & 1)
dp[i][j] = min(dp[i][j], dp[i^1<<j][k] + getdis(j, k));
for(int i = 0; i < n; ++ i)
ans = min(ans, dp[i][(1<<n)-1] + getdis(i, n));
printf("%.2lf", ans);
return 0;
}