#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$
  • 输入中的所有值都是整数。

输入

从标准输入中按如下格式输入:

NN

a1a_1 \ldots aNa_N

b1b_1 \ldots bNb_N

输出

如果可以实现目标,则打印实现所需的最小操作数;否则,打印-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 \}$。