AT_abc276_d [ABC276D] Divide by 2 or 3
题目描述
给定一个正整数序列 $A=(a_1,a_2,\ldots,a_N)$。
你可以重复执行以下两种操作中的任意一种,次数不限(可以为 $0$ 次):
- 选择一个满足 $1 \leq i \leq N$ 且 $a_i$ 是 $2$ 的倍数的整数 $i$,将 $a_i$ 替换为 $\frac{a_i}{2}$。
- 选择一个满足 $1 \leq i \leq N$ 且 $a_i$ 是 $3$ 的倍数的整数 $i$,将 $a_i$ 替换为 $\frac{a_i}{3}$。
你的目标是使 $A$ 满足 $a_1=a_2=\ldots=a_N$。
请你求出实现目标所需操作次数的最小值。如果无论如何都无法实现目标,请输出 $-1$。
输入格式
输入按以下格式从标准输入读入。
> $N$ $a_1$ $a_2$ $\ldots$ $a_N$
输出格式
请输出答案。
说明/提示
## 限制条件
- $2 \leq N \leq 1000$
- $1 \leq a_i \leq 10^9$
- 输入均为整数
## 样例解释 1
可以按如下方式操作,最少 $3$ 次即可达成目标:
- 选择 $a_i$ 是 $2$ 的倍数的 $i=2$,将 $a_2$ 替换为 $\frac{a_2}{2}$,此时 $A=(1,2,3)$。
- 选择 $a_i$ 是 $2$ 的倍数的 $i=2$,将 $a_2$ 替换为 $\frac{a_2}{2}$,此时 $A=(1,1,3)$。
- 选择 $a_i$ 是 $3$ 的倍数的 $i=3$,将 $a_3$ 替换为 $\frac{a_3}{3}$,此时 $A=(1,1,1)$。
## 样例解释 2
无论如何操作都无法达成目标。
由 ChatGPT 4.1 翻译