#include<iostream>
#include<vector>
#include<string>
#include<algorithm>
#include<cmath>
#include<functional>
#include<map>
#include<cstdlib>
#include<complex>
#include<numeric>
#include<set>
#include<deque>
#include<queue>

using namespace std;
using Int = long long;
Int INF = 1LL << 60;
const Int MOD = 1000000000 + 7;

int main() {

	cin.tie(nullptr);
	ios::sync_with_stdio(false);

	Int N;
	cin >> N;

	vector<long double> x(N);
	vector<long double> y(N);

	for (Int i = 0; i < N; i++) {
		cin >> x[i] >> y[i];
	}

	long double kai = 1;
	for (Int i = 1; i < N+1; i++) {
		kai *= i;
	}

	if (N == 2) {



		long double sum = 0;
		long double dis;
		for (Int i = 0; i < N; i++) {
			for (Int j = 0; j < N; j++) {
				if (i == j)continue;
				dis = abs(sqrt((x[i] - x[j]) * (x[i] - x[j]) + (y[i] - y[j]) * (y[i] - y[j])));
				sum += dis;
			}
		}

		printf("%.10Lf\n", sum / kai);

	}
	else if (N == 3) {

		long double sum = 0;
		long double dis;
		for (Int i = 0; i < N; i++) {
			for (Int j = 0; j < N; j++) {
				if (i == j)continue;
				for (Int k = 0; k < N; k++) {
					if (i == k)continue;
					if (j == k)continue;

					dis = abs(sqrt((x[i] - x[j]) * (x[i] - x[j]) + (y[i] - y[j]) * (y[i] - y[j])));
					dis += abs(sqrt((x[j] - x[k]) * (x[j] - x[k]) + (y[j] - y[k]) * (y[j] - y[k])));
					sum += dis;
				}
			}
		}

		printf("%.10Lf\n", sum / kai);

	}
	else if (N == 4) {
		long double sum = 0;
		long double dis;
		for (Int i = 0; i < N; i++) {
			for (Int j = 0; j < N; j++) {
				if (i == j)continue;
				for (Int k = 0; k < N; k++) {
					if (i == k)continue;
					if (j == k)continue;

					for (Int m = 0; m < N; m++) {
						if (i == m)continue;
						if (j == m)continue;
						if (k == m)continue;

						dis = abs(sqrt((x[i] - x[j]) * (x[i] - x[j]) + (y[i] - y[j]) * (y[i] - y[j])));
						dis += abs(sqrt((x[j] - x[k]) * (x[j] - x[k]) + (y[j] - y[k]) * (y[j] - y[k])));
						dis += abs(sqrt((x[k] - x[m]) * (x[k] - x[m]) + (y[k] - y[m]) * (y[k] - y[m])));
						sum += dis;
					}
				}
			}
		}

		printf("%.10Lf\n", sum / kai);

	}
	else if (N == 5) {
		long double sum = 0;
		long double dis;
		for (Int i = 0; i < N; i++) {
			for (Int j = 0; j < N; j++) {
				if (i == j)continue;
				for (Int k = 0; k < N; k++) {
					if (i == k)continue;
					if (j == k)continue;

					for (Int m = 0; m < N; m++) {
						if (i == m)continue;
						if (j == m)continue;
						if (k == m)continue;

						for (Int n = 0; n < N; n++) {
							if (n == i)continue;
							if (n == j)continue;
							if (n == k)continue;
							if (n == m)continue;

							dis = abs(sqrt((x[i] - x[j]) * (x[i] - x[j]) + (y[i] - y[j]) * (y[i] - y[j])));
							dis += abs(sqrt((x[j] - x[k]) * (x[j] - x[k]) + (y[j] - y[k]) * (y[j] - y[k])));
							dis += abs(sqrt((x[k] - x[m]) * (x[k] - x[m]) + (y[k] - y[m]) * (y[k] - y[m])));
							dis += abs(sqrt((x[n] - x[m]) * (x[n] - x[m]) + (y[n] - y[m]) * (y[n] - y[m])));

							sum += dis;
						}
					}
				}
			}
		}

		printf("%.10Lf\n", sum / kai);

	}
	else if (N == 6) {
		long double sum = 0;
		long double dis;
		for (Int i = 0; i < N; i++) {
			for (Int j = 0; j < N; j++) {
				if (i == j)continue;
				for (Int k = 0; k < N; k++) {
					if (i == k)continue;
					if (j == k)continue;

					for (Int m = 0; m < N; m++) {
						if (i == m)continue;
						if (j == m)continue;
						if (k == m)continue;

						for (Int n = 0; n < N; n++) {
							if (n == i)continue;
							if (n == j)continue;
							if (n == k)continue;
							if (n == m)continue;

							for (Int p = 0; p < N; p++) {
								if (p == i)continue;
								if (p == j)continue;
								if (p == k)continue;
								if (p == m)continue;
								if (p == n)continue;


								dis = abs(sqrt((x[i] - x[j]) * (x[i] - x[j]) + (y[i] - y[j]) * (y[i] - y[j])));
								dis += abs(sqrt((x[j] - x[k]) * (x[j] - x[k]) + (y[j] - y[k]) * (y[j] - y[k])));
								dis += abs(sqrt((x[k] - x[m]) * (x[k] - x[m]) + (y[k] - y[m]) * (y[k] - y[m])));
								dis += abs(sqrt((x[n] - x[m]) * (x[n] - x[m]) + (y[n] - y[m]) * (y[n] - y[m])));
								dis += abs(sqrt((x[n] - x[p]) * (x[n] - x[p]) + (y[n] - y[p]) * (y[n] - y[p])));

								sum += dis;

							}
						}
					}
				}
			}
		}

		printf("%.10Lf\n", sum / kai);
	}

    else if(N == 7) {

	long double sum = 0;
	long double dis;
	for (Int i = 0; i < N; i++) {
		for (Int j = 0; j < N; j++) {
			if (i == j)continue;
			for (Int k = 0; k < N; k++) {
				if (i == k)continue;
				if (j == k)continue;

				for (Int m = 0; m < N; m++) {
					if (i == m)continue;
					if (j == m)continue;
					if (k == m)continue;

					for (Int n = 0; n < N; n++) {
						if (n == i)continue;
						if (n == j)continue;
						if (n == k)continue;
						if (n == m)continue;

						for (Int p = 0; p < N; p++) {
							if (p == i)continue;
							if (p == j)continue;
							if (p == k)continue;
							if (p == m)continue;
							if (p == n)continue;

							for (Int q = 0; q < N; q++) {
								if (q == i)continue;
								if (q == j)continue;
								if (q == k)continue;
								if (q == m)continue;
								if (q == n)continue;
								if (q == p)continue;



								dis = abs(sqrt((x[i] - x[j]) * (x[i] - x[j]) + (y[i] - y[j]) * (y[i] - y[j])));
								dis += abs(sqrt((x[j] - x[k]) * (x[j] - x[k]) + (y[j] - y[k]) * (y[j] - y[k])));
								dis += abs(sqrt((x[k] - x[m]) * (x[k] - x[m]) + (y[k] - y[m]) * (y[k] - y[m])));
								dis += abs(sqrt((x[n] - x[m]) * (x[n] - x[m]) + (y[n] - y[m]) * (y[n] - y[m])));
								dis += abs(sqrt((x[n] - x[p]) * (x[n] - x[p]) + (y[n] - y[p]) * (y[n] - y[p])));
								dis += abs(sqrt((x[q] - x[p]) * (x[q] - x[p]) + (y[q] - y[p]) * (y[q] - y[p])));

								sum += dis;
							}
						}
					}
				}
			}
		}
	}

	printf("%.10Lf\n", sum / kai);
	}
	else {

	long double sum = 0;
	long double dis;
	for (Int i = 0; i < N; i++) {
		for (Int j = 0; j < N; j++) {
			if (i == j)continue;
			for (Int k = 0; k < N; k++) {
				if (i == k)continue;
				if (j == k)continue;

				for (Int m = 0; m < N; m++) {
					if (i == m)continue;
					if (j == m)continue;
					if (k == m)continue;

					for (Int n = 0; n < N; n++) {
						if (n == i)continue;
						if (n == j)continue;
						if (n == k)continue;
						if (n == m)continue;

						for (Int p = 0; p < N; p++) {
							if (p == i)continue;
							if (p == j)continue;
							if (p == k)continue;
							if (p == m)continue;
							if (p == n)continue;

							for (Int q = 0; q < N; q++) {
								if (q == i)continue;
								if (q == j)continue;
								if (q == k)continue;
								if (q == m)continue;
								if (q == n)continue;
								if (q == p)continue;

								for (Int r = 0; r < N; r++) {
									if (r == i)continue;
									if (r == j)continue;
									if (r == k)continue;
									if (r == m)continue;
									if (r == n)continue;
									if (r == p)continue;
									if (r == q)continue;


									dis = abs(sqrt((x[i] - x[j]) * (x[i] - x[j]) + (y[i] - y[j]) * (y[i] - y[j])));
									dis += abs(sqrt((x[j] - x[k]) * (x[j] - x[k]) + (y[j] - y[k]) * (y[j] - y[k])));
									dis += abs(sqrt((x[k] - x[m]) * (x[k] - x[m]) + (y[k] - y[m]) * (y[k] - y[m])));
									dis += abs(sqrt((x[n] - x[m]) * (x[n] - x[m]) + (y[n] - y[m]) * (y[n] - y[m])));
									dis += abs(sqrt((x[n] - x[p]) * (x[n] - x[p]) + (y[n] - y[p]) * (y[n] - y[p])));
									dis += abs(sqrt((x[q] - x[p]) * (x[q] - x[p]) + (y[q] - y[p]) * (y[q] - y[p])));
									dis += abs(sqrt((x[q] - x[r]) * (x[q] - x[r]) + (y[q] - y[r]) * (y[q] - y[r])));

									sum += dis;
								}
							}
						}
					}
				}
			}
		}
	}

	printf("%.10Lf\n", sum / kai);
}
}


Measured memory_bytes: 384