#include<bits/stdc++.h>
using namespace std;
int n;
struct p
{
double x;
double y;
bool vis;
}a[20];
double ans = 10000000000000000.00;
double d(double x1, double y1, double x2, double y2)
{
double v = sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2));
return v;
}
void dfs(double x, double y, double dx, int k)
{
if(k > n)
{
ans = min(ans, dx);
return ;
}
for(int i = 1; i <= n; i++)
{
a[k].vis = true;
if(a[i].vis || dx+d(a[k].x, a[k].y, a[i].x, a[i].y) <= ans) continue;
dfs(a[i].x, a[i].y ,dx+d(a[k].x, a[k].y, a[i].x, a[i].y), i);
a[k].vis = false;
}
}
int main()
{
scanf("%d", &n);
for(int i = 1; i <= n; i++)
{
scanf("%lf%lf", &a[i].x, &a[i].y);
}
dfs(0, 0, 0, 0);
printf("%.2f", ans);
return 0;
}