不朴素的数列(Bonus)

本题是 http://oj.daimayuan.top/problem/882 的加强版,差别仅在于 nnSiS_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,)=gcd(a,gcd(b,c,))\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  (in)i, i + 1\;(i \ne n),将 Si,Si+1\langle S_i, S_{i + 1}\rangle 修改为 Si1,Si+1+1\langle S_i - 1, S_{i + 1} + 1\rangle
  • 选择 i,i+1  (in)i, i + 1\;(i \ne n),将 Si,Si+1\langle S_i, S_{i + 1}\rangle 修改为 Si+1,Si+11\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

数据规模

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

样例 1 输入

3
4 8 5

样例 1 输出

9

解释:

[4,8,5]4[0,12,5]5[0,17,0][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][0,3,3,4,5,6][0,3,3,3,6,6][1, 2, 3, 4, 5, 6] \rightarrow [0, 3, 3, 4, 5, 6] \rightarrow [0, 3, 3, 3, 6, 6]