#include<bits/stdc++.h>
using namespace std;
double ans = 10000000;
double now;
int n;
bool vis[20];
double x[20], y[20];
double f[20][20];
void dfs(int k, int d)
{
if (now >= ans)
{
return;
}
if (k == n)
{
ans = min(ans, now);
return;
}
for (int i = 1; i <= n;++i)
if (!vis[i])
{
if (f[d][i]!=0)
{
vis[i] = 1;
now += f[d][i];
dfs(k + 1, i);
now -= f[d][i];
vis[i] = 0;
}
else
{
vis[i] = 1;
f[i][d] = f[d][i] = sqrt((x[i] - x[d])*(x[i] - x[d]) + (y[i] - y[d])*(y[i] - y[d]));
now += f[i][d];
dfs(k + 1, i);
now -= f[i][d];
vis[i] = 0;
}
}
}
int main(){
cin>>n;
for(int i=1;i<=n;i++)
{
cin>>x[i]>>y[i];
}
vis[0]=1;
dfs(0,0);
printf("%.2lf\n",ans);
return 0;
}