1 #include <bits/stdc++.h>
2 using namespace std;
3 #define _for(i,a,b) for(int i = (a);i < b;i ++)
4 typedef double db;
5 const int maxn = 20;
6 db rnt = 1<<30;
7 int n;
8 double x[maxn],y[maxn],dis[maxn][maxn];
9
10 double dfs(int s,db sum,int cur)
11 {
12 if(sum>rnt)
13 return 1<<30;
14 if(s==(1<<(n+1))-1)
15 rnt = min(rnt,sum);
16
17 _for(i,0,n+1)
18 if(!((1<<i)&s))
19 {
20 s |= 1<<i;
21 dfs(s,sum+dis[cur][n-i],n-i);
22 s ^= 1<<i;
23 }
24 }
25
26 int main()
27 {
28 scanf("%d",&n);
29 _for(i,1,n+1)
30 scanf("%lf%lf",&x[i],&y[i]);
31 x[0]=0,y[0]=0;
32 _for(i,0,n+1)
33 _for(j,0,n+1)
34 dis[i][j]=sqrt((x[i]-x[j])*(x[i]-x[j])+(y[i]-y[j])*(y[i]-y[j]));
35
36 dfs(1<<n,0.0,0);
37 printf("%0.2f\n",rnt);
38 return 0;
39 }