#include <bits/stdc++.h>
using namespace::std;

#define all(x) (x).begin(), (x).end()

typedef long long ll;
typedef array<int, 3> tri;
typedef long double ld;

template <class T> istream& operator>>(istream& I, vector<T>& v) {for (T &e: v) I >> e; return I;}
template <class T> ostream& operator<<(ostream &O, const vector<T>& v) {for (const T &e: v) O << e << ' '; return O;}


void _main() {
        int n; cin >> n;
        vector<pair<int,int>> a(n);
        for (int i = 0; i < n; i++) cin >> a[i].first >> a[i].second;


        sort(all(a));
        auto calc = [](vector<pair<int,int>> a) {
                double cnt = 0;
                for (int i = 1; i < a.size(); i++) {
                        double dist = sqrt(pow(a[i].first - a[i - 1].first,2) + pow(a[i].second - a[i - 1].second, 2));
                        cnt += dist;
                }
                return cnt;
        };


        double ans = 0, k = 0;
        sort(all(a));
        do {
                ans += calc(a);
                k++;
        } while (next_permutation(all(a)));


        ans /= k;
        cout << fixed << setprecision(10) << ans;
}



signed main() {
        ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0);
//        freopen("input.txt", "r", stdin);
        int _t = 1;
//        cin >> _t;
        while (_t--) _main();
        return 0;
}
#include <iostream>
#include <algorithm>
#include <string>
#include <vector>
#include <set>
#include <cmath>
#include <stdio.h>
#include <list>
#include <numeric>
#include <stack>
#include <queue>
#include <tuple>
#include <bitset>
#include <map>
#include <math.h>
//ceil(a/b)   (a + (b - 1))/ b
using namespace std;
#define rep(i,n) for(int i = 0; i < (n); i++)
typedef long long ll;
typedef pair<int,int> P;
const int inf=1000000007;
const ll mod=1000000007;
const double PI=3.14159265358979323846;
int dx[] = {1,-1,0,0};
int dy[] = {0,0,1,-1};


int main(){
    int N;
    cin >> N;
    double D[N][N];
    vector<P> c(N);
    rep(i,N) {
	double x,y;
	cin >> x >> y;
	c[i] = make_pair(x,y);
    }
    rep(i,N) {
	rep(j,N) {
	    double x0 = c[i].first;
	    double y0 = c[i].second;
	    double x1 = c[j].first;
	    double y1 = c[j].second;
	    D[i][j] = sqrt((x0-x1)*(x0-x1) + (y0-y1)*(y0-y1));
	}
    }

    vector<int> l(N);
    rep(i,N) l[i] = i;
    double sum = 0;
    double n = 0;
    
    do{
	n++;
	rep(i,N-1) {
	    sum += D[l[i]][l[i+1]];
	}
    }while(next_permutation(l.begin(),l.end()));

    double ans = sum/n;
    printf("%.12lf\n",ans);
    
    return 0;
}

