#include using namespace std; #define FOR(i,a,b) for (int i = (a); i <= (b); i++) #define FORD(i,a,b) for (int i = (a); i >= (b); i--) #define REP(i,b) for (int i = 0; i < (b); i++) typedef long long int ll; typedef long double ld; const int N = 100000; int n; ll x[2*N], y[2*N]; ld res, prob; ll win, loss, all; ll cx, cy; int main() { while(scanf("%d", &n) >= 1) { REP(i, n) { scanf("%lld %lld", &cx, &cy); x[i] = cx+cy; y[i] = cx-cy; } sort(x, x+n); sort(y, y+n); x[n] = 48946846167; y[n] = 48946846167; win = 0; loss =0; REP(i, n) { int c = 1; while(x[i] == x[i+1]) {++i; ++c;} win += c*(c-1); //printf("w %lld\n",c*(c-1)); } REP(i, n) { int c = 1; while(y[i] == y[i+1]) {++i; ++c;} loss += c*(c-1); // printf("l %lld\n",c*(c-1)); } all = n*n; prob = (win+loss)/(ld)all; // printf("%lld %lld %lld %lld\n", win, loss, all, n); printf("%Lf\n", prob); } return 0; }