Red de conocimiento informático - Problemas con los teléfonos móviles - [Ronda preliminar de la "Copa Blue Bridge" 2019] Secuencia aritmética

[Ronda preliminar de la "Copa Blue Bridge" 2019] Secuencia aritmética

El profesor de matemáticas le hizo a Xiao Ming una pregunta sobre la suma de secuencias aritméticas. Pero el descuidado Xiao Ming olvidó parte de la secuencia aritmética y solo recordó los N enteros que contenía.

Ahora, dados estos N enteros, Xiao Ming quiere saber cuántos términos hay en la secuencia aritmética más corta que contiene estos N enteros.

La primera línea de entrada contiene un número entero N.

La segunda línea contiene N enteros A1.A2,...,AN. Tenga en cuenta que el orden de A1<=AN no es necesariamente el mismo que el orden en la secuencia geométrica)

2<=N<=100000,0<=Ai<=10^9

Genera un número entero que representa la respuesta.

5

2 6 4 10 20

10

La secuencia aritmética más corta que contiene 2, 6, 4, 10 y 20 es 2, 4, 6, 8, 10, 12, 14, 16, 18 y 20.

La pregunta se puede explicar como: Para N números, ¿cuál es el número mínimo de complementos que hace que estos números sean una secuencia aritmética?

Para N números ordenados en orden ascendente, el primer elemento (a1) y el último elemento (an) deben ser fijos. Esto se debe a que no es necesario agregar elementos de matriz adicionales antes del primer número o después del último número.

Número de términos = (an-a1) / d + 1

Cuanto mayor sea la tolerancia d, menor será el número de términos

Hay dos conclusiones (2) Puedes elegir uno):

La tolerancia d debe ser divisible por cada número ai en la secuencia menos el primer número a1, es decir: (ai-a1)%. (ai-a1)%d = 0, entonces la tolerancia máxima d es (ai-a1)

La tolerancia d debe dividirse por cada número ai en la secuencia por el último número an , Es decir: (an - ai)%d = 0, entonces la tolerancia máxima d es el máximo común divisor de (an - ai)

Nota: Todos los casos donde la tolerancia es 0 deben ser específicamente determinado