#agc022c. [agc022_c]Remainder Game
[agc022_c]Remainder Game
题目描述
Aoki正在玩一个数字序列 。每秒钟,他执行以下操作:
- 选择一个正整数 。对于序列中的每个元素 ,Aoki 可以选择用 整除 后的余数替换 ,或者保持不变。这个操作的代价是 (无论他改变了多少个元素)。
Aoki想要将序列转换为 (元素的顺序很重要)。判断是否可能让 Aoki 执行这个任务,如果可以,找到所需的最小代价。
约束条件
- 输入中的所有值都是整数。
输入
从标准输入读入输入数据,格式如下:
输出
打印将原始序列转换为 所需的最小代价。如果任务无法完成,则输出 。
示例输入 1
3
19 10 14
0 3 4
示例输出 1
160
以下是可能的操作序列:
-
选择 。将 替换为 , 替换为 ,不修改 。序列现在为 。
-
选择 。将 替换为 ,保持不变的是 ,将 替换为 。序列现在为 。
总代价为 。
示例输入 2
3
19 15 14
0 0 0
示例输出 2
2
Aoki可以选择 ,把所有元素变成 。代价是 。
示例输入 3
2
8 13
5 13
示例输出 3
-1
任务无法完成,因为使用给定的操作无法将 转换为 。
示例输入 4
4
2 0 1 8
2 0 1 8
示例输出 4
0
这里不需要任何操作。代价为 。
示例输入 5
1
50
13
示例输出 5
137438953472
注意溢出问题。