#include #include #include int digits(uint64_t n){ int i = 0; while(n){ n /= 10; i++; } return i; } #define N 20 char exclude[N]; int is_perm(const uint64_t n, uint64_t a){ const int d = digits(a); const int dn = digits(n); int i; for(i = 0; i < d; i++){ const int dig = a % 10; int j; char ok = 0; uint64_t nn = n; for(j = 0; j < dn; j++){ if(exclude[j]){ nn /= 10; continue; } if(nn % 10 == dig){ exclude[j] = 1; ok = 1; break; } nn /= 10; } if(!ok){ return 0; } a /= 10; } return 1; } void reset(){ int i; for(i = 0; i < N; i++){ exclude[i] = 0; } } int main(){ int k, i; scanf("%d", &k); for(i = 0; i < k; i++){ uint64_t n, a, b; scanf("%lu %lu %lu", &n, &a, &b); if(n / a != b){ printf("NO\n"); } else if(!(a % 10) && !(b % 10)){ printf("NO\n"); } else if(digits(a) != digits(b)){ printf("NO\n"); } else if(!is_perm(n, a) || !is_perm(n, b)){ printf("NO\n"); } else{ printf("YES\n"); } reset(); } }