/* [NKP'05] Mondriaan door: Jan Kuipers */ using namespace std; #include #include int N,cnt; vector col; vector > adj; void go (int dep) { if (dep==N) { cnt++; return; } vector ok(4,true); for (int i=0; i0) ok[col[i]]=false; for (int i=0; i<4; i++) if (ok[i]) { col[dep]=i; go(dep+1); } } int main () { int runs; cin >> runs; while (runs--) { cin >> N; vector x1(N),y1(N),x2(N),y2(N); for (int i=0; i>x1[i]>>y1[i]>>x2[i]>>y2[i]; if (x1[i]>x2[i]) swap(x1[i],x2[i]); if (y1[i]>y2[i]) swap(y1[i],y2[i]); } adj=vector >(N, vector(N)); for (int i=0; i(N); cnt=0; go(0); cout << cnt << endl; } return 0; }