#include #include #include using namespace std; struct Point{ int x; int y; }; double size(double x, double y){ return sqrt((x * x) + (y * y)); } double PI = acos(-1); int main(void){ int N; while(scanf("%d ", &N) == 1){ vector mesta(N); for(int i = 0; i < N; i++){ int x, y; scanf("%d %d ", &x, &y); Point mesto; mesto.x = x; mesto.y = y; mesta[i] = mesto; } double c = 0; double total = N*N; for(int i = 0; i < mesta.size(); i++){ for(int i1 = i + 1; i1 < mesta.size(); i1++){ double vektor_size = size(mesta[i].x - mesta[i1].x, mesta[i].y - mesta[i1].y); double normal_size = 1.; double vekt_sucin = (mesta[i].x - mesta[i1].x) * 1; double uhol_val = vekt_sucin / vektor_size; uhol_val = abs(uhol_val); double uhol = acos(uhol_val); int uhol_deg = (int)(180. * uhol/PI); if(uhol_deg == 45) c++; } } printf("%lf\n", (c*2) / total); } return 0; }