#include <bits/stdc++.h>
int x[333333], y[333333], ed[333333], next[333333], data[333333], son[333333],
    pre[333333], f[333333 * 10], n, S, T, l = 1, cnt = 1;
double d[333333], cost[333333], ans;
bool b[333333];
void add(int x, int y, int z, double c) {
  ed[++l] = y, data[l] = z, cost[l] = c, next[l] = son[x], son[x] = l;
}
bool spfa() {
  for (int i = S; i <= T; i++) d[i] = 1e20, b[i] = 0;
  int h = 0, t = 1;
  f[1] = S, d[S] = 0;
  while (h < t) {
    int i = f[++h];
    b[i] = 0;
    for (int p = son[i]; p; p = next[p])
      if (data[p]) {
        int j = ed[p];
        if (d[i] + cost[p] + 1e-8 < d[j]) {
          d[j] = d[i] + cost[p], pre[j] = p;
          if (!b[j]) b[j] = 1, f[++t] = j;
        }
      }
  }
  if (d[T] > 1e15) return 0;
  for (int p = T; p != S; p = ed[p]) p = pre[p], data[p]--, data[p ^= 1]++;
  cnt++, ans += d[T];
  return 1;
}
int main() {
  scanf("%d", &n), T = n + n + 1;
  for (int i = 1; i <= n; i++)
    scanf("%d%d", x + i, y + i), add(S, i, 1, 0), add(i, S, 0, -0),
        add(i + n, T, 2, 0), add(T, i + n, 0, -0);
  for (int i = 1; i <= n; i++)
    for (int j = 1; j <= n; j++)
      if (y[i] < y[j])
        add(i, j + n, 1,
            sqrt(0. + (x[i] - x[j]) * (x[i] - x[j]) +
                 (y[i] - y[j]) * (y[i] - y[j]))),
            add(j + n, i, 0,
                -sqrt(0. + (x[i] - x[j]) * (x[i] - x[j]) +
                      (y[i] - y[j]) * (y[i] - y[j])));
  while (spfa())
    ;
  if (cnt < n)
    puts("-1");
  else
    printf("%.9lf\n", ans);
  return 0;
}
