#include #include #include using namespace std; vector > points; int main(){ int n; while(scanf("%d", &n)+1){ points.resize(n); vector p1 = vector(n); vector p2 = vector(n); for(int i = 0; i < n; i++){ scanf("%d %d", &points[i].first, &points[i].second); p1[i] = points[i].second - points[i].first; p2[i] = points[i].first + points[i].second; } sort(p1.begin(), p1.end()); sort(p2.begin(), p2.end()); /*printf("Sorted:\n"); for(int i = 0; i < n; i++){ printf("%d %d\n", p1[i], p2[i]); }*/ int count = 0; int tmp = 1; for(int i = 1; i < n; i++){ if(p1[i-1] == p1[i]){ tmp++; } else { count += tmp*(tmp-1); tmp = 1; } } count += tmp*(tmp-1); tmp = 1; for(int i = 1; i < n; i++){ if(p2[i-1] == p2[i]){ tmp++; } else { count += tmp*(tmp-1); tmp = 1; } } count += tmp*(tmp-1); printf("%lf\n", (double)count/(n*n)); points.clear(); } return 0; }