#include #include using ull = unsigned long long; void print_yes(){ std::cout << "YES" << '\n'; } void print_no(){ std::cout << "NO" << '\n'; } int get_digits(ull num, std::vector& set){ set.clear(); int len = 0; while (num){ int rem = num % 10; num /= 10; set[rem]++; len++; } return len; } bool check_con(ull a, ull b, int len_n, std::vector& set){ int len_a = 0; while (a){ ull rem = a % 10; a /= 10; if (set[rem] == 0) { return false; } set[rem]--; len_a++; }; int len_b = 0; while (b){ ull rem = b % 10; b /= 10; if (set[rem] == 0) { return false; } set[rem]--; len_b++; }; return len_a == (len_n / 2) && len_b == (len_n / 2); } bool check_div(ull a, ull b){ return (a % 10 != 0) || (b % 10 != 0); } bool check_eq(ull a, ull b, ull n){ return a * b == n; } int main() { ull bats; std::cin >> bats; std::vector set(10, 0); ull n = 0; ull a = 0; ull b = 0; for (ull i = 0; i < bats; i++){ std::cin >> n >> a >> b; int n_len = get_digits(n, set); if (check_con(a, b, n_len, set) && check_div(a, b) && check_eq(a, b, n)){ print_yes(); } else { print_no(); } for (int j = 0; j < 10; j++){ set[j] = 0; } } }