#include #include using namespace std; #define mp make_pair #define REP(A,B) for(int (A)=0;(A)<(B);(A)++) #define pb push_back int matched[3*1100*4]; int main() { int n; scanf("%d", &n); vector< pair > hs; map,int > S; n = 4*n; REP(i, n) { int x,y; scanf("%d%d", &x, &y); hs.pb(mp(x, y)); S[mp(x, y)] = i; } sort(hs.begin(), hs.end()); long double ans = 0; REP(i, n) { if(matched[i]) continue; for(int j = i+1; j < n; j++) { if(matched[j]) continue; int dx = (hs[j].first-hs[i].first); int dy = (hs[j].second-hs[i].second); if(dx % 2 != dy % 2) continue; int xa = hs[i].first+(dx+dy)/2; int xb = hs[i].first+(dx-dy)/2; int ya = hs[i].second+(-dx+dy)/2; int yb = hs[i].second+(dx+dy)/2; if(!S.count(mp(xa,ya))) continue; if(!S.count(mp(xb,yb))) continue; if(matched[S[mp(xa,ya)]]) continue; if(matched[S[mp(xb,yb)]]) continue; matched[i] = matched[j] = matched[S[mp(xa,ya)]] = matched[S[mp(xb,yb)]] = 1; long double curr = (dx*(long double)dx+dy*(long double)dy)/2.0L; ans += curr; } } printf("%.8Lf", ans); return 0; }