fun main(args: Array<String>) {
    val N = nextInt()
    val XY = Array<Pair<Int, Int>>(N) { listOfIntToPair(listOfInt(0)) }
    val A = Array<Int>(N) { 0 }
    fun F(n: Int): Int = if (n > 1) n * F(n - 1) else 1
    fun D(n: Int, m: Int): Double = Math.sqrt(Math.pow((XY[n].first - XY[m].first).toDouble(), 2.0) + Math.pow((XY[n].second - XY[m].second).toDouble(), 2.0))
    var sum: Double = 0.0
    fun P(n: Int) {
        if (n == N) {
            for (m in 0 until N-1) {
                sum += D(A[m], A[m + 1])
            }
        } else {
            for (m in 0 until N) {
                var f = true
                for (x in 0 until n) if (A[x] == m) f = false
                if (f) {
                    A[n] = m
                    P(n + 1)
                }
            }
        }
    }
    P(0)
    var ans = sum / F(N).toDouble()
    println(ans)
}
fun next() = readLine()!!
fun listOfString() = next().split(" ")
fun nextInt(delta: Int = 0) = Integer.parseInt(next()) + delta
fun listOfInt(delta: Int = 0) = listOfString().map { Integer.parseInt(it) + delta }
fun listOfIntToPair(p: List<Int>): Pair<Int, Int> = Pair(p[0], p[1])