题目描述
给定一个长度为 n 的数组 a 、一个长度为 k 的数组 b 和一个数字 m,现在对数组 a 进行以下操作:
- 选择数组 a 中一个 m 的倍数 ai 替换成 m 个 mai
- 选择数组 a 中 m 个相同的数字 ai,ai+1,…,ai+m−1 替换成 m⋅ai
请问能否把数组 a 变成数组 b。
输入
每个测试包含多个测试用例。第一行包含测试用例的数量 t ( 1≤t≤104 )。测试用例说明如下。
每个测试用例的第一行包含两个整数 n 和 m ( 1≤n≤5⋅104 , 2≤m≤109 )。
每个测试用例的第二行包含 n 个整数 a1,a2,…,an ( 1≤ai≤109 )。( 1≤ai≤109 ).
每个测试用例的第三行包含一个整数 k ( 1≤k≤5⋅104 )。
每个测试用例的第四行包含 k 个整数 b1,b2,…,bk ( 1≤bi≤109 )。
保证所有测试用例中 n+k 的总和不超过 2⋅105 。
输出
对于每个测试用例,如果可以将 a 变成 b ,则打印 "是",否则打印 "否"。您可以打印每个字母的任何大小写(大写或小写)。
样例 #1
样例输入 #1
5
5 2
1 2 2 4 2
4
1 4 4 2
6 2
1 2 2 8 2 2
2
1 16
8 3
3 3 3 3 3 3 3 3
4
6 6 6 6
8 3
3 9 6 3 12 12 36 12
16
9 3 2 2 2 3 4 12 4 12 4 12 4 12 4 4
8 3
3 9 6 3 12 12 36 12
7
12 2 4 3 4 12 56
样例输出 #1
Yes
Yes
No
Yes
No
提示
在示例的第一个测试用例中,我们可以使用 i=2 进行第二次操作: [1,2,2,4,2]→[1,4,4,2] .
在示例的第二个测试用例中,我们可以:
- 用 i=2 进行第二次操作: $[1,\color{red}{2,2},8,2,2]\to [1,\color{red}{4},8,2,2]$ .
- 对 i=4 进行第二次操作: [1,4,8,2,2]→[1,4,8,4] .
- 用 i=3 进行第一次操作: [1,4,8,4]→[1,4,4,4,4] .
- 用 i=2 进行第二次操作: [1,4,4,4,4]→[1,8,4,4] .
- 用 i=3 进行第二次操作: [1,8,4,4]→[1,8,8] .
- 用 i=2 进行第二次运算: [1,8,8]→[1,16] .