#include<math.h>
#include<iostream>
#include<algorithm>
using namespace std;
int n;
double sum;
double ans = 900000000.0;
int v[10000];
double dis[100][100];
struct node
{
double x;
double y;
}box[10000];
double length(double x1,double y1,double x2,double y2)
{
return sqrt((x1-x2)*(x1-x2) + (y1-y2)*(y1-y2));
}
void dfs(int step)
{
if(sum>ans)
return;
if(step == n)
{
ans = min(ans,sum);
return;
}
for(int i=1;i<=n;i++)
{
if(i==step || v[i])
continue;
v[i] = 1;
sum += dis[step][i];
dfs(step+1);
v[i] = 0;
sum -= dis[step][i];
}
}
int main()
{
cin>>n;
for(int i=1;i<=n;i++)
{
cin>>box[i].x;
cin>>box[i].y;
}
box[0].x=0;
box[0].y=0;
for(int i=0;i<=n;i++)
{
for(int j=0;j<=n;j++)
{
dis[i][j] = length(box[i].x , box[i].y , box[j].x , box[j].y);
}
}
dfs(0);
printf("%.2lf",ans);
return 0;
}