#include <bits/stdc++.h>
using namespace std;
#define foe(i, a, b) for (int i = a; i <= b; ++i)
inline double sq(double x) {
return x * x;
}
inline double dst(double x1, double y1, double x2, double y2) {
return sqrt(sq(x1 - x2) + sq(y1 - y2));
}
int n, quit;
bool vis[20];
double res = 0x666ac666, x[20], y[20], _dst[20][20];
void dfs(int d, int x, double s) {
if (++quit >= 1e7)
cout << fixed << setprecision(2) << res, exit(0);
if (d > n) res = min(res, s);
else foe (i, 1, n)
if (!vis[i]) {
double tmp = s + _dst[x][i];
if (tmp >= res) continue;
vis[i] = 1;
dfs(d + 1, i, tmp);
vis[i] = 0;
}
}
signed main() {
ios::sync_with_stdio(0);
cin.tie(0), cout.tie(0);
cin >> n;
foe (i, 1, n) cin >> x[i] >> y[i];
foe (i, 0, n)
foe (j, 0, n)
_dst[i][j] = dst(x[i], y[i], x[j], y[j]);
dfs(1, 0, 0);
cout << fixed << setprecision(2) << res;
}
悲惨