CF2000C Numeric String Template
Description
Kristina has an array $ a $ , called a template, consisting of $ n $ integers. She also has $ m $ strings, each consisting only of lowercase Latin letters. The strings are numbered from $ 1 $ to $ m $ . She wants to check which strings match the template.
A string $ s $ is considered to match the template if all of the following conditions are simultaneously satisfied:
- The length of the string $ s $ is equal to the number of elements in the array $ a $ .
- The same numbers from $ a $ correspond to the same symbols from $ s $ . So, if $ a_i = a_j $ , then $ s_i = s_j $ for ( $ 1 \le i, j \le n $ ).
- The same symbols from $ s $ correspond to the same numbers from $ a $ . So, if $ s_i = s_j $ , then $ a_i = a_j $ for ( $ 1 \le i, j \le n $ ).
In other words, there must be a one-to-one correspondence between the characters of the string and the elements of the array.For example, if $ a $ = \[ $ 3, 5, 2, 1, 3 $ \], then the string "abfda" matches the template, while the string "afbfa" does not, since the character "f" corresponds to both numbers $ 1 $ and $ 5 $ .
Input Format
The first line of input contains a single integer $ t $ ( $ 1 \le t \le 10^4 $ ) — the number of test cases.
The following descriptions are for the test cases.
The first line of each test case contains a single integer $ n $ ( $ 1 \le n \le 2 \cdot 10^5 $ ) — the number of elements in the array $ a $ .
The second line of each test case contains exactly $ n $ integers $ a_i $ ( $ -10^9 \le a_i \le 10^9 $ ) — the elements of the array $ a $ .
The third line of each test case contains a single integer $ m $ ( $ 1 \le m \le 2 \cdot 10^5 $ ) — the number of strings to check for template matching.
Following are $ m $ strings, each containing a non-empty string $ s_j $ ( $ 1 \le |s_j| \le 2 \cdot 10^5 $ ), consisting of lowercase Latin letters.
It is guaranteed that the sum of $ n $ across all test cases does not exceed $ 2 \cdot 10^5 $ , and that the sum of the lengths of all strings does not exceed $ 2 \cdot 10^5 $ .
Output Format
For each test case, output $ m $ lines. On the $ i $ -th line ( $ 1 \le i \le m $ ) output:
- "YES", if the string with index $ i $ matches the template;
- "NO" otherwise.
You may output the answer in any case (for example, the strings "yEs", "yes", "Yes", and "YES" will be recognized as a positive answer).
Explanation/Hint
The first test case is explained in the problem statement.