#include #include #include using namespace std; int main() { int N; while (scanf("%d", &N) != EOF) { map dias; map diak; long X, Y; for (int i = 0; i < N; i++) { scanf("%ld %ld", &X, &Y); if (!diak.count(X - Y)) diak[X - Y] = 1; else diak[X - Y] += 1; if (!dias.count(X + Y)) dias[X + Y] = 1; else dias[X + Y] += 1; } long long diakSum = 0; long long diasSum = 0; for (auto it = diak.begin(); it != diak.end(); ++it) { int a = it->second; diakSum += ((long long)a * (long long)(a - 1)); } for (auto it = dias.begin(); it != dias.end(); ++it) { int a = it->second; diasSum += ((long long)a * (long long)(a - 1)); } double P = (diakSum + diasSum) / (double)((long long)N * N); //printf("%f\n", P); cout << P << "\n"; } return 0; }