#include<iostream>
#include<algorithm>
#include<cmath>
#include<cstring>
#include<iomanip>
using namespace std;
double x[105],y[105],minn=1e50;int n;bool used[105];
double dis(int i,int j)
{
return sqrt((x[i]-x[j])*(x[i]-x[j])+(y[i]-y[j])*(y[i]-y[j]));
}
void dfs(double s,int num,int m)
{
if(m>n)
{
if(minn>=s) minn=s;
return;
}
if(s>minn) return;
for(int i=1;i<=n;i++)
{
if(used[i]==true) continue;
used[i]=true;
dfs(s+dis(num,i),i,m+1);
used[i]=false;
}
return;
}
int main()
{
cin>>n;
for(int i=1;i<=n;i++) cin>>x[i]>>y[i];
for(int i=1;i<=n;i++)
{
used[i]=true;
dfs(dis(i,0),i,1);
used[i]=false;
}
cout<<setprecision(2)<<fixed<<minn;
}