← Home
write a go solution for Description:
You are given a string s. You can build new string p from s using the following operation no more than two times:

1. choose any subsequence s_i_1,s_i_2,...,s_i_k where 1<=i_1<i_2<...<i_k<=|s|;
2. erase the chosen subsequence from s (s can become empty);
3. concatenate chosen subsequence to the right of the string p (in other words, p=p+s_i_1s_i_2...s_i_k).

Of course, initially the string p is empty.

For example, let s=ababcd. At first, let's choose subsequence s_1s_4s_5=abc — we will get s=bad and p=abc. At second, let's choose s_1s_2=ba — we will get s=d and p=abcba. So we can build abcba from ababcd.

Can you build a given string t using the algorithm above?

Input Format:
The first line contains the single integer T (1<=T<=100) — the number of test cases.

Next 2T lines contain test cases — two per test case. The first line contains string s consisting of lowercase Latin letters (1<=|s|<=400) — the initial string.

The second line contains string t consisting of lowercase Latin letters (1<=|t|<=|s|) — the string you'd like to build.

It's guaranteed that the total length of strings s doesn't exceed 400.

Output Format:
Print T answers — one per test case. Print YES (case insensitive) if it's possible to build t and NO (case insensitive) otherwise.

Note:
None. Output only the code with no comments, explanation, or additional text.