#include<bits/stdc++.h>
using namespace std;
struct node{
int x,y;
}a[25];
int f[25];
double ans=2e9;
int n;
double dis(node a,node b){
return sqrt((a.x-b.x)*(a.x-b.x)+(a.y-b.y)*(a.y-b.y));
}
void pai(int x,node last,double sum){
if(ans<=sum) return;
if(x==n+1){
ans=min(ans,sum);
return;
}
for(int i=1;i<=n;i++){
if(f[i]==0){
f[i]=1;
pai(x+1,a[i],sum+dis(last,a[i]));
f[i]=0;
}
}
}
int main(){
cin>>n;
for(int i=1;i<=n;i++){
cin>>a[i].x>>a[i].y;
}
pai(1,{0,0},0);
cout<<fixed<<setprecision(2)<<ans;
return 0;
}
(说实话,测试记录还怪好看的)