#CF1303E. Erase Subsequences

Erase Subsequences

markdown

E. 删除子序列

每个测试的时间限制22
每个测试的内存限制256256 MB
输入:标准输入
输出:标准输出

题目描述

你有一个字符串 ss。你可以通过以下操作从 ss 中构造一个新的字符串 tt最多使用两次该操作:

  • 选择任意一个子序列 si1,si2,,siks_{i_1}, s_{i_2}, \dots, s_{i_k},其中 1i1<i2<<iks1 \le i_1 < i_2 < \dots < i_k \le |s|
  • ss 中删除所选的子序列(ss 可能变为空);
  • 将所选的子序列拼接到字符串 pp 的右侧(即 p=p+si1si2sikp = p + s_{i_1}s_{i_2}\dots s_{i_k})。

当然,初始时字符串 pp 是空的。

例如,令 s=ababcds = \texttt{ababcd}
第一次,选择子序列 s1s4s5=abcs_1s_4s_5 = \texttt{abc},得到 p=abcp = \texttt{abc}s=bads = \texttt{bad}
第二次,选择子序列 s1s2=bas_1s_2 = \texttt{ba},得到 p=abcbap = \texttt{abcba}s=ds = \texttt{d}
因此,我们可以从 ss 构造出 t=abcbat = \texttt{abcba}

请问,能否通过上述算法构造出给定的字符串 tt

输入

第一行包含一个整数 TT1T1001 \le T \le 100)—— 测试用例的数量。

接下来的 TT 行每行包含两个测试用例:

  • 第一行包含一个由小写拉丁字母组成的字符串 ss1s4001 \le |s| \le 400)—— 初始字符串。
  • 第二行包含一个由小写拉丁字母组成的字符串 tt1ts1 \le |t| \le |s|)—— 你想要构造的字符串。

保证所有测试用例中 ss 的总长度不超过 400400

输出

输出 TT 个答案 —— 每个测试用例一行。
如果能够构造出 tt,则输出 YES(不区分大小写),否则输出 NO(不区分大小写)。

示例

输入

4
ababcd
abcba
a
b
defi
fed
xyz
x

输出

YES
NO
NO
YES