#include<iostream>
#include<cmath>
using namespace std;
int n;
bool p[100];
double len,zy[1000000];
struct aa{
double x,y;
}a[100];
int qiu(int o){
int pp=0;
for(int i=1;i<=n;i++)
pp+=(1<<(i-1))*(p[i]||i==o?1:0);
return pp;
}
double sqrt1(int l,int r){
double xx=(a[l].x-a[r].x)*(a[l].x-a[r].x);
double yy=(a[l].y-a[r].y)*(a[l].y-a[r].y);
return sqrt(xx+yy);
}
void dfs(int k,int j){
if(k==n){
return ;
}
for(int i=2;i<=n;i++){
if((p[i]=!1)&&(zy[qiu(i)]==0.0||(zy[qiu(i)]>len+sqrt1(i,j)))){
p[i]=1;
cout<<sqrt1(i,j)<<endl;
len +=sqrt1(i,j);
zy[qiu(9999)]=len;
dfs(k+1,i);
len-=sqrt1(i,j);
p[i]=0;
}
}
}
int main(){
cin>>n;
p[1]=1;
for(int i=1;i<=n;i++){
cin>>a[i].x>>a[i].y;
}
dfs(0,1);
cout<<zy[(1<<n)-1];
return 0;
}
orz