#include<bits/stdc++.h> #define Pi acos(-1) #define x first #define y second #define MAX_N 1500 usingnamespace std; typedefdouble dnt; typedeflonglong lnt; typedef pair<dnt,dnt> pdd; template <classT> inlinevoidread(T &x){ x = 0; int c = getchar(), f = 1; for (; !isdigit(c); c = getchar()) if (c == 45) f = -1; for (; isdigit(c); c = getchar()) (x *= 10) += f*(c-'0'); } int n; lnt c1, c2; pdd p[MAX_N+5]; lnt C(int n, int m){ lnt ret = 1LL; if (n < m) return0LL; for (int i = 1; i <= m; i++) ret *= 1LL*(n-i+1); for (int i = 1; i <= m; i++) ret /= i; return ret; } intmain(){ read(n); for (int i = 1; i <= n; i++) read(p[i].x), read(p[i].y); for (int i = 1, m = 0; i <= n; i++, m = 0) { lnt tot = 0LL; dnt a[MAX_N*2+5]; for (int j = 1; j <= n; j++) if (i^j) a[++m] = atan2(p[j].y-p[i].y, p[j].x-p[i].x); for (int j = 1; j <= n; j++) if (a[j] < 0) a[j] += 2*Pi; sort(a+1, a+m+1); for (int j = 1; j <= m; j++) a[m+j] = a[j]+2*Pi; for (int u = 1, v = 1; u <= m; tot += C(v-u, 2), u++) while (v < (m<<1) && a[v+1]-a[u] < Pi) v++; c1 += C(m, 3)-tot; } c2 = C(n, 4)-c1; returnprintf("%.6lf\n", (dnt)(c1+c2*2)/(dnt)C(n, 3)+3), 0; }