AT_abc254_h [ABC254Ex] Multiply or Divide by 2

题目描述

给定两个由 $N$ 个非负整数组成的多重集 $A=\{a_1,\ldots,a_N\}$ 和 $B=\{b_1,\ldots,b_N\}$。 你可以以任意顺序、任意次数进行以下操作: - 从 $A$ 中选择一个非负整数 $x$,将 $A$ 中的一个 $x$ 删除,并加入一个 $2x$。 - 从 $A$ 中选择一个非负整数 $x$,将 $A$ 中的一个 $x$ 删除,并加入一个 $\left\lfloor \frac{x}{2} \right\rfloor$。($\lfloor x \rfloor$ 表示不超过 $x$ 的最大整数) 你的目标是使 $A$ 和 $B$ 作为多重集完全相同。 请判断是否可以达成目标,如果可以,请求出所需操作次数的最小值。

输入格式

输入按以下格式从标准输入读入。 > $N$ $a_1$ $\ldots$ $a_N$ $b_1$ $\ldots$ $b_N$

输出格式

如果可以达成目标,输出所需操作次数的最小值;否则输出 $-1$。

说明/提示

### 限制条件 - $1 \leq N \leq 10^5$ - $0 \leq a_1 \leq \ldots \leq a_N \leq 10^9$ - $0 \leq b_1 \leq \ldots \leq b_N \leq 10^9$ - 输入均为整数 ### 样例解释 1 可以通过如下两步操作达成目标: - 选择 $x=3$,将 $A$ 中的 $x\ (=3)$ 删除,加入 $2x\ (=6)$。此时 $A=\{4,5,6\}$。 - 选择 $x=5$,将 $A$ 中的 $x\ (=5)$ 删除,加入 $\left\lfloor \frac{x}{2} \right\rfloor\ (=2)$。此时 $A=\{2,4,6\}$。 ### 样例解释 2 无法将 $\{0\}$ 变为 $\{1\}$。 由 ChatGPT 4.1 翻译