#CF3746. 等价多重集

等价多重集

题目描述

多重集是一组数字,其中可以存在相等的元素,而数字的顺序无关紧要。当每个值出现相同次数时,两个多重集相等。例如,多重集 {2,2,4}\{2,2,4\}{2,4,2}\{2,4,2\} 相等,但多重集 {1,2,2}\{1,2,2\}{1,1,2}\{1,1,2\} 不相等。

给定两个由 nn 个整数组成的多重集 aabb

在单个操作中,可以将 bb 多重集的任何元素加倍或减半(向下取整)。换句话说,对于 bb 多重集的元素 xx,您可以执行以下操作之一:

x2x⋅2 替换 xx, 或用 x2⌊\frac x2⌋(向下取整)替换 xx

请注意,您不能更改多重集 aa 的元素。

看看能否在任意次操作中使多重集 bb 变为与多重集 aa 相等(可能为 00)。

例如,如果 n=4a=4,24,5,2b=4,1,6,11n=4,a={4,24,5,2},b={4,1,6,11},那么答案是肯定的。我们可以按以下方式进行操作:

12=21⋅2=2 替换 1。我们得到 b={4,2,6,11}b=\{4,2,6,11\}

112=5⌊\frac{11}2⌋=5 替换 11。我们得到 b={4,2,6,5}b=\{4,2,6,5\}。 用 62=126⋅2=12 替换 6。我们得到 b={4,2,12,5}b=\{4,2,12,5\}。 用 122=2412⋅2=24 替换 12。我们得到 b={4,2,24,5}b=\{4,2,24,5\}。 得到相等的多重集 a={4,24,5,2}a=\{4,24,5,2\}b={4,2,24,5}b=\{4,2,24,5\}

输入格式

输入数据的第一行包含一个整数 t(1t104)t(1≤t≤10^4) — 测试用例的数量。

每个测试用例由三行组成。

测试用例的第一行包含一个整数 n(1n2105)n(1≤n≤2⋅10^5) — 多重集 aabb 的元素数量。

第二行给出 nn 个整数:a1,a2,,an(1a1a2an109)a_1,a_2,…,a_n(1≤a_1≤a_2≤⋯≤a_n≤10^9) — 多重集 aa 的元素。请注意,这些元素可能相等。

第三行包含 nn 个整数:b1,b2,,bn(1b1b2bn109)b_1,b_2,…,b_n(1≤b_1≤b_2≤⋯≤b_n≤10^9) — 多重集 bb 的元素。请注意,这些元素可能相等。

保证所有测试用例中 nn 值的总和不超过 21052⋅10^5

输出格式

对于每个测试用例,在单独的一行上输出:

如果你能使多重集 bb 变成与 aa 相等,则输出 YES。 否则输出 NO

你可以以任何方式输出 YESNO(例如,字符串 yEsyesYesYES 都将被识别为正面答案)。

测试样例

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

样例说明

第一个例子在说明中已经解释了。

在第二个例子中,无法通过可用操作从多重集 bb 中获取值 31

在第三个例子中,我们可以按照以下步骤进行:

  • 2 替换 4,得到 b={4,14,14,26,42}b=\{4,14,14,26,42\}
  • 14 替换 7,得到 b={4,7,14,26,42}b=\{4,7,14,26,42\}
  • 26 替换 13,得到 b={4,7,14,13,42}b=\{4,7,14,13,42\}
  • 42 替换 21,得到 b={4,7,14,13,21}b=\{4,7,14,13,21\}
  • 21 替换 10,得到 b={4,7,14,13,10}b=\{4,7,14,13,10\}
  • 得到相等的多重集 a={4,7,10,13,14}a=\{4,7,10,13,14\}b=4,7,14,13,10b={4,7,14,13,10}