#include<bits/stdc++.h>
using namespace std;
int m,n;
double ans=0x3f3f3f3f,sum;
struct z{
double x,y;
}p[20];
bool a[50];
double j(double x1,double x2,double y1,double y2){
return sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2));
}
void dfs(double now,double xz,double yz){
if(sum>=ans)return;
if(now==n){
ans=min(ans,sum);
return;
}
for(int i=1;i<=n;i++)
{
if(a[i]==0){
a[i]=1;
sum+=j(xz,p[i].x,yz,p[i].y);
dfs(now+1,p[i].x,p[i].y);
a[i]=0;
sum-=j(xz,p[i].x,yz,p[i].y);
}
}
}
int main(){
cin>>n;
for(int i=1;i<=n;i++){
cin>>p[i].x>>p[i].y;
}
dfs(0,0,0);
printf("%.2f\n",ans);
return 0;
}```