题目描述
多重集是一组数字,其中可以存在相等的元素,而数字的顺序无关紧要。当每个值出现相同次数时,两个多重集相等。例如,多重集 {2,2,4} 和 {2,4,2} 相等,但多重集 {1,2,2} 和 {1,1,2} 不相等。
给定两个由 n 个整数组成的多重集 a 和 b。
在单个操作中,可以将 b 多重集的任何元素加倍或减半(向下取整)。换句话说,对于 b 多重集的元素 x,您可以执行以下操作之一:
用 x⋅2 替换 x, 或用 ⌊2x⌋(向下取整)替换 x。
请注意,您不能更改多重集 a 的元素。
看看能否在任意次操作中使多重集 b 变为与多重集 a 相等(可能为 0)。
例如,如果 n=4,a=4,24,5,2,b=4,1,6,11,那么答案是肯定的。我们可以按以下方式进行操作:
用 1⋅2=2 替换 1
。我们得到 b={4,2,6,11}。
用 ⌊211⌋=5 替换 11
。我们得到 b={4,2,6,5}。 用 6⋅2=12 替换 6
。我们得到 b={4,2,12,5}。 用 12⋅2=24 替换 12
。我们得到 b={4,2,24,5}。 得到相等的多重集 a={4,24,5,2} 和 b={4,2,24,5}。
输入格式
输入数据的第一行包含一个整数 t(1≤t≤104) — 测试用例的数量。
每个测试用例由三行组成。
测试用例的第一行包含一个整数 n(1≤n≤2⋅105) — 多重集 a 和 b 的元素数量。
第二行给出 n 个整数:a1,a2,…,an(1≤a1≤a2≤⋯≤an≤109) — 多重集 a 的元素。请注意,这些元素可能相等。
第三行包含 n 个整数:b1,b2,…,bn(1≤b1≤b2≤⋯≤bn≤109) — 多重集 b 的元素。请注意,这些元素可能相等。
保证所有测试用例中 n 值的总和不超过 2⋅105。
输出格式
对于每个测试用例,在单独的一行上输出:
如果你能使多重集 b 变成与 a 相等,则输出 YES
。
否则输出 NO
。
你可以以任何方式输出 YES
和 NO
(例如,字符串 yEs
、yes
、Yes
和 YES
都将被识别为正面答案)。
测试样例
5
4
2 4 5 24
1 4 6 11
3
1 4 17
4 5 31
5
4 7 10 13 14
2 14 14 26 42
5
2 2 4 4 4
28 46 62 71 98
6
1 2 10 16 64 80
20 43 60 74 85 99
YES
NO
YES
YES
YES
样例说明
第一个例子在说明中已经解释了。
在第二个例子中,无法通过可用操作从多重集 b 中获取值 31
。
在第三个例子中,我们可以按照以下步骤进行:
- 用
2
替换 4
,得到 b={4,14,14,26,42}。
- 用
14
替换 7
,得到 b={4,7,14,26,42}。
- 用
26
替换 13
,得到 b={4,7,14,13,42}。
- 用
42
替换 21
,得到 b={4,7,14,13,21}。
- 用
21
替换 10
,得到 b={4,7,14,13,10}。
- 得到相等的多重集 a={4,7,10,13,14} 和 b=4,7,14,13,10。