/* -*- coding: utf-8 -*- * * 3622.cc: No.3622 Perfect Matching of Crab - yukicoder */ #include #include using namespace std; /* constant */ const int MAX_N = 100000; const int MAX_N2 = MAX_N * 2; /* typedef */ /* global variables */ int xs[MAX_N2], ys[MAX_N2]; /* subroutines */ /* main */ int main() { int tn; scanf("%d", &tn); while (tn--) { int n; scanf("%d", &n); int n2 = n * 2, xn = 0, yn = 0, hc = 0, vc = 0; for (int i = 0; i < n2; i++) { int xi, yi; char cs[4]; scanf("%d%d%s", &xi, &yi, cs); if (cs[0] == 'x') hc++, ys[yn++] = yi; else vc++, xs[xn++] = xi; } if (hc > vc) { sort(ys, ys + yn); int sum = 0; for (int i = 0; i < yn;) { int j = i; while (i < yn && ys[j] == ys[i]) i++; sum += (i - j) / 2; } if (vc + sum >= n) puts("Yes"); else puts("No"); } else if (hc < vc) { sort(xs, xs + xn); int sum = 0; for (int i = 0; i < xn;) { int j = i; while (i < xn && xs[j] == xs[i]) i++; sum += (i - j) / 2; } if (hc + sum >= n) puts("Yes"); else puts("No"); } else puts("Yes"); } return 0; }