ICPC12C - The Encrypted Password
Encrypting passwords is one of the most important problems nowadays, and you trust only the encryption algorithms which you invented, and you have just made a new encryption algorithm.
Given a password which consists of only lower case English letters, your algorithm encrypts this password using the following 3 steps (in this given order):
- Swap two different characters of the given password (you can do this step zero or more times).
- Append zero or more lower case English letters at the beginning of the output of step one.
- Append zero or more lower case English letters to the end of the output of step two.
And the encrypted password is the output of step three.
You have just finished implementing the above algorithm and applied it on many passwords. Now you want to make sure that there are no bugs in your implementation, so you decided to write another program which validates the output of the encryption program. Given the encrypted password and the original password, your job is to check whether the encrypted password may be the result of applying your algorithm on the original password or not.
Your program will be tested on one or more test cases. The first line of the input will be a single integer T, the number of test cases (1T100). Followed by the test cases, each test case is on two lines. The first line of each test case contains the encrypted password. The second line of each test case contains the original password. Both the encrypted password and the original password are at least 1 and at most 100,000 lower case English letters (from `a' to `z'), and the length of the original password is less than or equal the length of the encrypted password.
For each test case, print on a single line one word, `YES' (without the quotes) if applying the algorithm on the original password may generate the encrypted password, otherwise print `NO' (without the quotes).
Input:3abcdefecdcdeecdabcdeffcdOutput:YES YES NO