#include<bits/stdc++.h>
using namespace std;constint N =1<<17;double dp[N][17];struct Point
{double x,y;} p[17];doublegetDis(int i,int j){returnsqrt(pow(p[i].x-p[j].x,2)+pow(p[i].y-p[j].y,2));}double dis[17][17];int n;voidinit(){for(int i =0; i <= n; i++){for(int j = i; j <= n; j++){dis[i][j]= dis[j][i]=getDis(i,j);}}int t = n+1;for(int i =0; i <(1<<t); i++){for(int j =0; j < t; j++){dp[i][j]=1e16;}}dp[1][0]=0;}intmain(){cin>>n;if(!n){cout<<"0.00"<<endl;return0;}p[0].x = p[0].y =0;for(int i =1; i <= n; i++){cin>>p[i].x>>p[i].y;}init();n = n+1;for(int i =1; i <(1<<n); i++){for(int j =1; j < n; j++){if((i>>j)&1)for(int k =0; k < n; k++){dp[i][j]=min(dp[i][j],dp[i-(1<<j)][k]+dis[k][j]);}}}double ans =1e16;for(int i =1; i < n; i++)ans =min(ans,dp[(1<<n)-1][i]);cout.precision(2);cout<<fixed<<ans<<endl;return0;}