#include #include #include #include #include int main(int argc, char const *argv[]) { int64_t n; while (scanf("%" PRId64, &n) != EOF) { int64_t x, y; std::map cnts_ne, cnts_nw; for (int64_t i = 0; i < n; ++i) { scanf("%" PRId64 " %" PRId64, &x, &y); cnts_ne[x - y]++; cnts_nw[x + y]++; } int64_t possibs = 0; for (const auto &item : cnts_ne) { if (item.second < 2) continue; possibs += item.second * (item.second - 1); } for (const auto &item : cnts_nw) { if (item.second < 2) continue; possibs += item.second * (item.second - 1); } double p = double(possibs) / pow(n, 2); printf("%.6f\n", p); } return 0; }