编程题
### 问题描述 给定一个长度为 $n$ 的整数数组 $A$,$A$ 中第 $i$ 个元素为 $A_i$($1 \leq i \leq n$),你可以进行任意次操作,每次操作可选择 $A$ 中的任意元素 $A_j$($1 \leq j < n$),将 $A_j-A_{j+1}$ 代替 $A_j$,将 $A_j+A_{j+1}$ 代替 $A_{j+1}$(两次代替同时进行),请问你最后是否可以使得 $\gcd(A_1,A_2,...A_n) >1$。如果可以,输出最小操作次数,否则输出 $-1$。 注意:$\gcd$ 为最大公约数函数,另外,两个数的最大公约数等于这两个数分别取绝对值后的最大公约数。 ### 输入格式 输入共 $2$ 行。 第一行包含一个整数 $n$,表示整数数列 $A$ 中元素的个数。 第二行包含 $n$ 个整数,表示整数数列 $A$ 中各元素的值。 ### 输出格式 输出共一行,包含一个整数,表示使得 $\gcd(A_1,A_2...A_n)>1$ 的最小操作次数, ### 样例输入 ``` 3 2 1 4 ``` ### 样例输出 ``` 2 ``` ### 样例解释 第 $1$ 次取 $j=2$,$A$ 变为 $\lbrace 2,-3,5 \rbrace$。 第 $2$ 次取 $j=2$,$A$ 变为 $\lbrace 2,-8,2 \rbrace$。 至此 $\gcd(A_1,A_2,A_3)=2$,所以答案为 $2$。 ### 评测数据规模 对于所有评测数据,$2 \leq n \leq 10^5$,$1 \leq A_i \leq 10^9$。
查看答案
赣ICP备20007335号-2