#d11105. 不朴素的数列(Bonus)

不朴素的数列(Bonus)

不朴素的数列(Bonus)

题目描述

本题是 http://oj.daimayuan.top/problem/882 的加强版,差别仅在于 nn 与 SiS_i 的取值。已使用红色字体标注题面中的区别。


关于序列 {S}\{S\} 定义 f(S)=gcd⁡(S1,S2,⋯ ,Sn)f(S) = \gcd(S_1, S_2, \cdots, S_n)。

我们熟知 gcd⁡\gcd 运算具有结合律,即 $\gcd(a, b, c, \cdots) = \gcd(a, \gcd(b, c, \cdots))$,可以轻松算出 f(S)f(S)。

然而 Patricky 认为,那些 f(S)=1f(S) = 1 的序列太过朴素。现在给定 {S}\{S\},他希望您能用下面的操作修改 {S}\{S\} 使得 f(S)≥2f(S) \ge 2 :

  • 选择 i,i+1  (i≠n)i, i + 1\;(i \ne n),将 ⟨Si,Si+1⟩\langle S_i, S_{i + 1}\rangle 修改为 ⟨Si−1,Si+1+1⟩\langle S_i - 1, S_{i + 1} + 1\rangle
  • 选择 i,i+1  (i≠n)i, i + 1\;(i \ne n),将 ⟨Si,Si+1⟩\langle S_i, S_{i + 1}\rangle 修改为 ⟨Si+1,Si+1−1⟩\langle S_i + 1, S_{i + 1} - 1\rangle

试回答使得 f(S)≥2f(S) \ge 2 的 最小 操作次数,或回答不可能。

输入格式

输入包含两行,第一行有一个整数 nn,表示 {S}\{S\} 的大小。

接下来一行包含 nn 个用空格分隔的整数,依次表示 S1,S2,⋯ ,SnS_1, S_2, \cdots, S_n。

输出格式

输出使得 f(S)≥2f(S) \ge 2 的最小操作次数。如果不可能,则在一行中输出 −1-1。

样例输入 1

3
4 8 5

样例输出 1

9

解释:

$[4, 8, 5] \rightarrow^4 [0, 12, 5] \rightarrow^5 [0, 17, 0]$

样例输入 2

4
0 5 15 10

样例输出 2

0

样例输入 3

6
1 2 3 4 5 6

样例输出 3

2

解释:

$[1, 2, 3, 4, 5, 6] \rightarrow [0, 3, 3, 4, 5, 6] \rightarrow [0, 3, 3, 3, 6, 6]$

数据范围

  • 1≤n≤1061 \le n \le 10 ^ {\color{red}{6}}
  • Si∈[0,106]S_i \in \color{red}{[0, 10^6]} 但保证 ∑i=1nSi≥1\displaystyle \sum_{i = 1} ^n S_i \ge 1,即元素不同时为 00。