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

int main() {
	int N;
    long double dx,dy,RR,avdist,prt;
    cin >>N;
    int arrive[N];
    vector<vector<long double>> b(N, vector<long double>(2));
    vector<vector<long double>> dist(N, vector<long double>(N,0));
    for(int i=0;i<N;i++){
      arrive[i]=i;
      cin >> b.at(i).at(0) >> b.at(i).at(1);
    }
    for(int i=0;i<N;i++){
      for(int j=0;j<N;j++){
        dx=b.at(i).at(0)-b.at(j).at(0);
        dy=b.at(i).at(1)-b.at(j).at(1);
        RR=pow(pow(dx,2)+pow(dy,2),0.5);
        dist.at(i).at(j)= RR;
        //cout << RR << endl;
    	}
    } 
  avdist=0;
  prt=0;
   do{
    for(int k=0;k<N-1;k++){
     avdist+=dist.at(arrive[k]).at(arrive[k+1]);
     }
         prt+=1;
     }while(next_permutation(arrive, arrive + N));
       cout << fixed << setprecision(10) << avdist/prt << endl;
   return 0;
     
    
}
#include <bits/stdc++.h>

using namespace std;
int n , f[10] , v[10] , x[10] , y[10];
double sol;

double calc (int a , int b){

    if (a == 0)
        return 0;

    return sqrt((x[a] - x[b]) * (x[a] - x[b]) + (y[a] - y[b]) * (y[a] - y[b]));

}

void back(int pas , double sum){
    int i;
    if (pas == n + 1){
        sol += sum;
        return;
    }

    for (i = 1 ; i <= n ; i++){
        if (!f[i]){
            f[i] = 1;
            v[pas] = i;
            back(pas + 1 , sum + calc(v[pas - 1] , v[pas]));
            f[i] = 0;
        }
    }

}

int main()
{
    //FILE *fin = fopen ("a.in","r");
    int i;
    cin >> n;
    for (i = 1 ; i <= n ; i++){
        cin >> x[i] >> y[i];
    }

    back(1 , 0.0);

    for (i = 1 ; i <= n ; i++)
        sol /= i;

    cout << setprecision(8) << fixed << sol;

    return 0;
}
