记录
#include<bits/stdc++.h>
using namespace std;
float x[20],y[20],minans=555.555;
bool flag=true,went[20];
int n;
float dis(float x1,float y1,float x2,float y2){
return sqrt(pow(x1-x2,2)+pow(y1-y2,2));
}
void dfs(float ans,int num){
if(went[num]==true){
return;
}
flag=true;
went[num]=true;
if(ans>minans){
return;
}
ans+=dis(x[num-1],y[num-1],x[num],y[num]);
for(int i=1;i<=n;i++){
if(went[i]==false){
flag=false;
}
}
if(flag=true&&num==n){
minans=ans;
for(int i=1;i<=n;i++){
went[i]=false;
}
return;
}
else{
for(int i=1;i<=n;i++){
dfs(ans,num+1);
}
}
went[num]=false;
}
int main(){
cin>>n;
for(int i=1;i<=n;i++){
cin>>x[i]>>y[i];
}
dfs(0.0,0);
printf("%.2lf",minans);
return 0;
}