#include<bits/stdc++.h>
using namespace std;
struct node
{
double x,y;
}a[20];
int n;
bool b[20]={0,1};
double ans=1e9;
void dfs(int k,int last,double sum)
{
if(k>n)
{
ans=min(ans,sum+sqrt(a[last].x*a[last].x+a[last].y*a[last].y));
return;
}
for(int i=1;i<=n;i++)
if(!b[i])
{
b[i]=1;
dfs(k+1,i,sum+sqrt((a[last].x-a[i].x)*(a[last].x-a[i].x)+(a[last].y-a[i].y)*(a[last].y-a[i].y)));
b[i]=0;
}
}
int main()
{
cin>>n;
for(int i=1;i<=n;i++)
cin>>a[i].x>>a[i].y;
dfs(1,0,0);
printf("%.2f",ans);
return 0;
}