#include<iostream>
#include<cstdio>
#include<cmath>
#include<cstring>
using namespace std;
double f[100][100];
int n,cnt;
struct yq{
double x,y;
}a[100];
double dp[20][32790];
int main()
{
memset(dp,127,sizeof(dp));
cin>>n;
for(int i=1;i<=n;i++){
cin>>a[i].x>>a[i].y;
}
a[0].x=0.0000000;
a[0].y=0.0000000;
for(int i=0;i<=n;i++){
for(int j=0;j<=n;j++){
f[i][j]=sqrt(pow(a[i].x-a[j].x,2)+pow(a[i].y-a[j].y,2));
f[j][i]=f[i][j];
}
}
cnt=pow(2,n);
for(int i=1;i<=n;i++) dp[i][1<<(i-1)]=f[i][0];
for(int i=1;i<=n;i++){
for(int k=1;k<=n;k++){
if(i==k) continue;
for(int j=0;j<=cnt-1;j++){
if(1<<(k-1)&j==1) continue;
if(i) if(1<<(i-1)&j==0) continue;
if((j&(cnt-1)!=0)&&dp[i][j]==0) continue;
dp[k][j+(1<<(k-1))]=min(dp[k][j+(1<<(k-1))],dp[i][j]+f[i][k]);
}
}
}
double ans=10000000.000000;
for(int i=1;i<=n;i++){
ans=min(ans,dp[i][cnt-1]);
}
printf("%.2lf",ans);
}