#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
#define mp make_pair
#define f first
#define s second
ll dp[1002][1002],dist[1002][1002];
ll recurse(int i,int n,int frontLast,int revLast,int end)
{
if(i==n-1)
{
return dist[frontLast][end]+dist[revLast][end];
}
if(dp[frontLast][revLast]!=-1)
return dp[frontLast][revLast];
ll temp=min(dist[frontLast][i]+recurse(i+1,n,i,revLast,end),dist[revLast][i]+recurse(i+1,n,frontLast,i,end));
dp[frontLast][revLast]=temp;
return temp;
}
int main() {
int n;
cin>>n;
vector<pair<ll,ll> >v;
memset(dp,-1,sizeof(dp));
for(int i=0;i<n;i++)
{
ll x,y;
cin>>x>>y;
x*=1000;y*=1000;
v.push_back(mp(x,y));
}
sort(v.begin(),v.end());
if(n==1)
{
int w=1/0;
}
for(int i=0;i<n;i++)
{
for(int j=i+1;j<n;j++)
{
ll temp1=v[i].f-v[j].f,temp2=v[i].s-v[j].s;
dist[i][j]=sqrt(pow(temp1,2)+pow(temp2,2));
dist[j][i]=dist[i][j];
}
}
ll ansTemp=recurse(1,n,0,0,n-1);
double ans=(double)ansTemp/1000.0;
printf("%.2lf\n",ans);
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CnR5cGVkZWYgbG9uZyBsb25nIGxsOwojZGVmaW5lIG1wIG1ha2VfcGFpcgojZGVmaW5lIGYgZmlyc3QKI2RlZmluZSBzIHNlY29uZApsbCBkcFsxMDAyXVsxMDAyXSxkaXN0WzEwMDJdWzEwMDJdOwpsbCByZWN1cnNlKGludCBpLGludCBuLGludCBmcm9udExhc3QsaW50IHJldkxhc3QsaW50IGVuZCkKewoJaWYoaT09bi0xKQoJewoJCXJldHVybiBkaXN0W2Zyb250TGFzdF1bZW5kXStkaXN0W3Jldkxhc3RdW2VuZF07Cgl9CglpZihkcFtmcm9udExhc3RdW3Jldkxhc3RdIT0tMSkKCXJldHVybiBkcFtmcm9udExhc3RdW3Jldkxhc3RdOwoJbGwgdGVtcD1taW4oZGlzdFtmcm9udExhc3RdW2ldK3JlY3Vyc2UoaSsxLG4saSxyZXZMYXN0LGVuZCksZGlzdFtyZXZMYXN0XVtpXStyZWN1cnNlKGkrMSxuLGZyb250TGFzdCxpLGVuZCkpOwoJZHBbZnJvbnRMYXN0XVtyZXZMYXN0XT10ZW1wOwoJcmV0dXJuIHRlbXA7Cn0KaW50IG1haW4oKSB7CglpbnQgbjsKCWNpbj4+bjsKCXZlY3RvcjxwYWlyPGxsLGxsPiA+djsKCW1lbXNldChkcCwtMSxzaXplb2YoZHApKTsKCWZvcihpbnQgaT0wO2k8bjtpKyspCgl7CgkJbGwgeCx5OwoJCWNpbj4+eD4+eTsKCQl4Kj0xMDAwO3kqPTEwMDA7CgkJdi5wdXNoX2JhY2sobXAoeCx5KSk7Cgl9Cglzb3J0KHYuYmVnaW4oKSx2LmVuZCgpKTsKCWlmKG49PTEpCgl7CgkJaW50IHc9MS8wOwoJfQoJZm9yKGludCBpPTA7aTxuO2krKykKCXsKCQlmb3IoaW50IGo9aSsxO2o8bjtqKyspCgkJewoJCQlsbCB0ZW1wMT12W2ldLmYtdltqXS5mLHRlbXAyPXZbaV0ucy12W2pdLnM7CgkJCWRpc3RbaV1bal09c3FydChwb3codGVtcDEsMikrcG93KHRlbXAyLDIpKTsKCQkJZGlzdFtqXVtpXT1kaXN0W2ldW2pdOwoJCX0KCX0KCWxsIGFuc1RlbXA9cmVjdXJzZSgxLG4sMCwwLG4tMSk7Cglkb3VibGUgYW5zPShkb3VibGUpYW5zVGVtcC8xMDAwLjA7CglwcmludGYoIiUuMmxmXG4iLGFucyk7CglyZXR1cm4gMDsKfQ==
MTAwCjMyIDUxCjE5IDQ5CjQwIDcwCjM5IDk5CjM3IDg2Cjg5IDkwCjIgMjkKODggODYKMTAgNTYKNTEgMTUKMTEgOTMKOTAgMQoyOCA5MAozMSA4MAo0NCA4MQoyIDMKMzEgMTMKNDQgMjIKNzMgMzMKMzYgNzgKMjcgMzMKMTYgMjcKNjAgMzUKMjkgMwo1NyA0MQozMiAxOAo4MSAyNgo4NSAyMwo5MyAyNQo1OCAzMQozOSAzMgo1NCA1NAo1NyA1OQo2NSA3OAozMiAzMAo0NiA0NAo1MyA5Nwo5MCA5NQoyOSA5NwoxNCA0NQowIDgwCjI5IDIzCjM5IDg0CjU0IDcwCjcxIDg0CjU3IDM3CjgxIDM1CjQ1IDQ2CjIgNTEKMiA0OQo5MiA4MAo2MSAzOAowIDc4Cjg4IDg2CjEgOTAKNzEgMzEKMjcgMTMKMzEgNzIKNCA4NAo4MiAzNwo0OSA3Cjc2IDEyCjI1IDg2CjIgNTcKNTEgMzAKNzAgOTgKOTcgNTUKNCAwCjQ3IDI5CjE5IDIzCjc2IDQyCjEyIDI5CjUyIDkwCjg5IDk3CjMxIDYxCjY0IDU5CjI5IDk2CjAgNDQKODggNzYKNzkgODIKOCA2Nwo3NyA2Mgo0MSA4CjU2IDE2CjcwIDk0CjM5IDAKNTIgNDgKMjIgMzUKNzIgODgKMTUgMzIKNTMgODEKMjcgMTMKMzcgNjEKODkgNTMKMiA3CjcyIDE5CjU0IDE0CjU4IDE4CjkyIDI5CjE4IDkK
100
32 51
19 49
40 70
39 99
37 86
89 90
2 29
88 86
10 56
51 15
11 93
90 1
28 90
31 80
44 81
2 3
31 13
44 22
73 33
36 78
27 33
16 27
60 35
29 3
57 41
32 18
81 26
85 23
93 25
58 31
39 32
54 54
57 59
65 78
32 30
46 44
53 97
90 95
29 97
14 45
0 80
29 23
39 84
54 70
71 84
57 37
81 35
45 46
2 51
2 49
92 80
61 38
0 78
88 86
1 90
71 31
27 13
31 72
4 84
82 37
49 7
76 12
25 86
2 57
51 30
70 98
97 55
4 0
47 29
19 23
76 42
12 29
52 90
89 97
31 61
64 59
29 96
0 44
88 76
79 82
8 67
77 62
41 8
56 16
70 94
39 0
52 48
22 35
72 88
15 32
53 81
27 13
37 61
89 53
2 7
72 19
54 14
58 18
92 29
18 9