// 他の方のコードを参考にさせていただいたのだけれど、謎割り算があったので、検証するための提出
'use strict'
function main(inp) {
  // 改行ごとに区切る
  inp = inp.trim().split('\n');
  // 最初の情報を別枠に儲ける
  const N = Number(inp.shift())
  // 行ごとに座標化する（ここまではできてた）
  inp = inp.map(r => r.split(' ').map(n => Number(n)))
  let sum = 0
  // 二重ループでそれぞれの組み合わせを作る
  for (let i = 0; i < N; i++) {
    for (let j = 0; j < N; j++) {
      // x座標の2乗数
      const x = Math.pow(inp[i][0] - inp[j][0], 2)
      // y座標の2乗数
      const y = Math.pow(inp[i][1] - inp[j][1], 2)
      // それをルートで出して足し合わせをする
      sum += Math.sqrt(x + y)
    }
  }
  // それをNで割るのはわかるけど
  console.log(sum / N);
}
main(require('fs').readFileSync('/dev/stdin', 'utf8'));
