AT_abc276_d.[ABC276D] Divide by 2 or 3
普及-
通过率:0%
AC君温馨提醒
该题目为【atcoder】题库的题目,您提交的代码将被提交至atcoder进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
给定一个正整数序列 A=(a1,a2,…,aN)。
你可以重复执行以下两种操作中的任意一种,次数不限(可以为 0 次):
- 选择一个满足 1≤i≤N 且 ai 是 2 的倍数的整数 i,将 ai 替换为 2ai。
- 选择一个满足 1≤i≤N 且 ai 是 3 的倍数的整数 i,将 ai 替换为 3ai。
你的目标是使 A 满足 a1=a2=…=aN。
请你求出实现目标所需操作次数的最小值。如果无论如何都无法实现目标,请输出 −1。
输入格式
输入按以下格式从标准输入读入。
N a1 a2 … aN
输出格式
请输出答案。
输入输出样例
输入#1
3 1 4 3
输出#1
3
输入#2
3 2 7 6
输出#2
-1
输入#3
6 1 1 1 1 1 1
输出#3
0
说明/提示
限制条件
- 2≤N≤1000
- 1≤ai≤109
- 输入均为整数
样例解释 1
可以按如下方式操作,最少 3 次即可达成目标:
- 选择 ai 是 2 的倍数的 i=2,将 a2 替换为 2a2,此时 A=(1,2,3)。
- 选择 ai 是 2 的倍数的 i=2,将 a2 替换为 2a2,此时 A=(1,1,3)。
- 选择 ai 是 3 的倍数的 i=3,将 a3 替换为 3a3,此时 A=(1,1,1)。
样例解释 2
无论如何操作都无法达成目标。
由 ChatGPT 4.1 翻译
输入解题思路,AI测评打分。不知道怎么写?