#include<bits/stdc++.h>
using namespace std;
int n;
struct p
{
double x;
double y;
bool vis;
}a[20];
double ans;
double d(int m, int n)
{
double v = sqrt((a[m].x-a[n].x)*(a[m].x-a[n].x)+(a[m].y-a[n].y)*(a[m].y-a[n].y));
return v;
}
double s[1001][1001];
void dfs(int sum, int now, double ds)
{
if(ds > ans) return ;
if(sum == n)
{
ans = min(ds, ans);
return ;
}
for(int i = 1; i <= n; i++)
{
if(a[i].vis == false)
{
a[i].vis = true;
dfs(sum+1, i, ds+s[now][i]);
a[i].vis = false;
}
}
}
int main()
{
scanf("%d", &n);
for(int i = 1; i <= n; i++)
{
scanf("%lf%lf", &a[i].x, &a[i].y);
}
for(int i = 0; i <= n; i++)
{
for(int j = 0; j <= n; j++)
{
s[i][j] = d(i, j);
}
}
a[0].x = 0;
a[0].y = 0;
ans = 1e9;
dfs(0, 0, 0);
printf("%.2lf", ans);
return 0;
}