use std::collections::HashMap; use proconio::{fastout, input, marker::Usize1}; #[fastout] fn main() { input! { t: usize } for _ in 0..t { let ans = solve(); println!("{}", if ans { "Yes" } else { "No" }); } } fn solve() -> bool { input! { n: usize, xyc: [(Usize1, Usize1, char); 2* n], } let mut count = [0usize; 2]; let mut row = HashMap::new(); let mut col = HashMap::new(); for &(x, y, c) in &xyc { count[(c == 'y') as usize] += 1; if c == 'x' { *row.entry(y).or_insert(0) += 1; } else { *col.entry(x).or_insert(0) += 1; } } let d = count[0].abs_diff(count[1]); if d == 0 { return true; } let pair = if count[0] > count[1] { row.values().map(|&x| x / 2).sum::() } else { col.values().map(|&x| x / 2).sum::() }; 2 * pair >= d }