#include<bits/stdc++.h>
using namespace std;
int x[16],y[16],n;
bool p[16];
double ans=10000000,ln=0;
double l(int x1,int y1,int x2,int y2)
{
double s=sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2));
//printf("%.2f\n",s);
return s;
}//求两点距离
void dfs(int k,int m)
{
if(k=n+1) ans=min(ln,ans);
else
{
for(int i=1;i<=n;i++)
{
if(!p[i])
{
p[i]=1;
double s=l(x[m],y[m],x[i],y[i]);
ln+=s;
dfs(k+1,i);
ln-=s;
p[i]=0;
}
}
}
}
int main()
{
cin>>n;
for(int i=1;i<=n;i++) cin>>x[i]>>y[i];
dfs(1,0);
printf("%.2f",ans);
return 0;
}
这dfs不会调