#include #define REP(A,B) for(int (A)=0;(A)<(B);(A)++) using namespace std; int XI[1111111], YI[1111111]; int R[1111111]; int C[1111111]; int main() { int n; while(scanf("%d", &n) == 1) { map M,M2; set indx, indx2; REP(i, n) { scanf("%d%d", XI+i, YI+i); M[XI[i]-YI[i]]++; indx.insert(XI[i]-YI[i]); indx2.insert(XI[i]+YI[i]); M2[XI[i]+YI[i]]++; } long double ans = 0.0; for(int i1 : indx) { long long c = M[i1]; // printf("i1=%d, c=%lld\n", i1, c); ans += c*(c-1)/2; } for(int i1 : indx2) { long long c = M2[i1]; // printf("i2=%d, c=%lld\n", i1, c); ans += c*(c-1)/2; } ans /= ((long long)n)*n/2.0; printf("%0.6lf\n", (double)ans); } return 0; }