[Ronda preliminar de la "Copa Blue Bridge" 2019] Secuencia aritmética
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