#AT2196. Ex - Multiply or Divide by 2
Ex - Multiply or Divide by 2
当前没有测试数据。
乘以2或除以2
得分:600分
问题描述
给定两个包含$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$相等(作为多重集合)。
确定是否可以实现,并找到实现所需的最小操作数。
约束条件
- $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
。
3
3 4 5
2 4 6
2
你可以通过以下两个操作实现目标:
- 选择$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\}$。
1
0
1
-1
你不能把$\{ 0 \}$变成$\{ 1 \}$。