1109: 除数
Memory Limit:128 MB
Time Limit:1.000 S
Judge Style:Text Compare
Creator:
Submit:267
Solved:34
Description
你有一个正整数序列:\( A = (a_1, a_2, \ldots, a_N) \)。
你可以选择并执行以下操作中的任意一个任意次数(包括零次):
- 选择一个整数 \( i \)(其中 \( 1 \leq i \leq N \) 且 \( a_i \) 是 2 的倍数),并将 \( a_i \) 替换为 \( \frac{a_i}{2} \)。
- 选择一个整数 \( i \)(其中 \( 1 \leq i \leq N \) 且 \( a_i \) 是 3 的倍数),并将 \( a_i \) 替换为 \( \frac{a_i}{3} \)。
你的目标是使序列 \( A \) 满足 \( a_1 = a_2 = \ldots = a_N \)。
找出你需要执行操作的最小总次数来实现目标。如果没有办法实现目标,则输出 -1。
你可以选择并执行以下操作中的任意一个任意次数(包括零次):
- 选择一个整数 \( i \)(其中 \( 1 \leq i \leq N \) 且 \( a_i \) 是 2 的倍数),并将 \( a_i \) 替换为 \( \frac{a_i}{2} \)。
- 选择一个整数 \( i \)(其中 \( 1 \leq i \leq N \) 且 \( a_i \) 是 3 的倍数),并将 \( a_i \) 替换为 \( \frac{a_i}{3} \)。
你的目标是使序列 \( A \) 满足 \( a_1 = a_2 = \ldots = a_N \)。
找出你需要执行操作的最小总次数来实现目标。如果没有办法实现目标,则输出 -1。
Input
- \( 2 \leq N \leq 1000 \)
- \( 1 \leq a_i \leq 10^9 \)
- \( 1 \leq a_i \leq 10^9 \)
- 所有输入的值都是整数。
输入格式如下:
N
a_1 a_2 ... a_N
其中:
- 第一行是整数 \( N \),表示序列的长度。
- 第二行是 \( N \) 个正整数 \( a_1, a_2, \ldots, a_N \)。
你的任务是根据上述操作要求,通过最少的操作次数使所有 \( a_i \) 相等,如果无法实现,则输出 -1。
Output
输出答案
Sample Input Copy
3
1 4 3
Sample Output Copy
3
HINT
这里有一种方法可以通过三次操作达到目标,这是所需的最少操作次数。
- 选择整数 \( i = 2 \),满足 \( a_i \) 是 2 的倍数,将 \( a_2 \) 替换为 \( \frac{a_2}{2} \)。此时 \( A \) 变为 \( (1, 2, 3) \)。
- 选择整数 \( i = 2 \),满足 \( a_i \) 是 2 的倍数,将 \( a_2 \) 替换为 \( \frac{a_2}{2} \)。此时 \( A \) 变为 \( (1, 1, 3) \)。
- 选择整数 \( i = 3 \),满足 \( a_i \) 是 3 的倍数,将 \( a_3 \) 替换为 \( \frac{a_3}{3} \)。此时 \( A \) 变为 \( (1, 1, 1) \)。
- 选择整数 \( i = 2 \),满足 \( a_i \) 是 2 的倍数,将 \( a_2 \) 替换为 \( \frac{a_2}{2} \)。此时 \( A \) 变为 \( (1, 2, 3) \)。
- 选择整数 \( i = 2 \),满足 \( a_i \) 是 2 的倍数,将 \( a_2 \) 替换为 \( \frac{a_2}{2} \)。此时 \( A \) 变为 \( (1, 1, 3) \)。
- 选择整数 \( i = 3 \),满足 \( a_i \) 是 3 的倍数,将 \( a_3 \) 替换为 \( \frac{a_3}{3} \)。此时 \( A \) 变为 \( (1, 1, 1) \)。