#include <bits/stdc++.h>
using namespace std;
int E[810 * 810], N[810 * 810], C[810 * 810];
int x[810], pre[810], y[810], q[810 * 810], fa[810];
int tem, n, t, j, i, s, T;
bool vis[810];
double dis[810], S[810 * 810], ans;
inline void add(int a, int b, int c, double d) {
  E[++t] = b;
  N[t] = fa[a];
  C[t] = c;
  S[t] = d;
  fa[a] = t;
  E[++t] = a;
  N[t] = fa[b];
  C[t] = 0;
  S[t] = -d;
  fa[b] = t;
}
inline bool CM() {
  int u, i, t = 0, w = 1, x;
  for (i = s; i <= T; i++) dis[i] = 1e20, vis[i] = 0, pre[i] = -1;
  q[1] = s;
  dis[s] = 0;
  vis[s] = 1;
  for (; t < w;) {
    x = q[++t];
    vis[x] = 0;
    for (i = fa[x]; i; i = N[i])
      if (C[i]) {
        u = E[i];
        if (dis[u] > dis[x] + S[i]) {
          dis[u] = dis[x] + S[i];
          pre[u] = i;
          if (!vis[u]) vis[u] = 1, q[++w] = u;
        }
      }
  }
  if (dis[T] > 1e15) return 0;
  for (i = T; i != s; i = E[i ^ 1]) {
    i = pre[i];
    C[i]--;
    C[i ^ 1]++;
  }
  tem++;
  ans += dis[T];
  return 1;
}
int main() {
  scanf("%d", &n);
  for (i = 1; i <= n; i++) scanf("%d%d", &x[i], &y[i]);
  s = 0;
  T = 2 * n + 1;
  t = 1;
  for (i = 1; i <= n; i++) {
    add(s, i, 2, 0);
    add(i + n, T, 1, 0);
  }
  for (i = 1; i <= n; i++)
    for (j = 1; j <= n; j++)
      if (y[i] > y[j])
        add(i, j + n, 1,
            sqrt((x[i] - x[j]) * (x[i] - x[j]) +
                 (y[i] - y[j]) * (y[i] - y[j])));
  ans = 0;
  while (CM())
    ;
  if (tem != n - 1)
    printf("-1\n");
  else
    printf("%.8lf\n", ans);
  return 0;
}
