#ABC254Ex. 乘以或除以 2

乘以或除以 2

乘以或除以 2

题目描述

给你各含 NN 个非负整数的多重集 A={a1,,aN}A=\{ a_1,\ldots,a_N \}B={b1,,bN}B=\{ b_1,\ldots,b_N \}

你可以任意次数、以任意顺序执行以下操作。

  • 选择 AA 中的一个非负整数 xx。从 AA 中删除一个 xx,改为加入一个 2x2x
  • 选择 AA 中的一个非负整数 xx。从 AA 中删除一个 xx,改为加入一个 x2\left\lfloor \frac{x}{2} \right\rfloor。(x\lfloor x \rfloor 表示不超过 xx 的最大整数。)

你的目标是使 AABB 相等(作为多重集)。

请判断是否可行;如果可行,求达成目标所需的最少操作次数。

输入格式

输入按以下格式从标准输入给出:

N
a_1 … a_N
b_1 … b_N

输出格式

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

样例

3
3 4 5
2 4 6
2

可以通过两次操作达成目标,如下所示。

选择 x=3x=3,从 AA 中删除一个 x(=3)x\, (=3),改为加入一个 2x(=6)2x\, (=6)。此时 A={4,5,6}A=\{4,5,6\}

选择 x=5x=5,从 AA 中删除一个 x(=5)x\, (=5),改为加入一个 x2(=2)\left\lfloor \frac{x}{2} \right\rfloor \, (=2)。此时 A={2,4,6}A=\{2,4,6\}

1
0
1
-1

无法把 {0}\{ 0 \} 变成 {1}\{ 1 \}

数据范围

  • 1N1051 \le N \le 10^5
  • 0a1aN1090 \le a_1 \le \ldots \le a_N \le 10^9
  • 0b1bN1090 \le b_1 \le \ldots \le b_N \le 10^9
  • 输入中的所有值均为整数。
难度 NOI/NOI+/CTS
通过率
尝试 0
已通过 0
ID
2874
类型
传统题
Time Limit
1195ms
Memory Limit
1024MiB
上传者
标签