Hasta que sea divisible


Submit solution


Points: 100 (partial)
Time limit: 1.0s
Memory limit: 256M

Author:
Problem types
Allowed languages
Ada, BrainF***, C, C#, C++, Dart, Go, Java, JS, Kotlin, Pascal, Prolog, Python, Swift, VB

Dado un arreglo A, de N elementos, indexados de 1 a N, se puede realizar cualquiera de las siguientes operaciones cualquier número de veces, cada operación tiene costo 1. Las operaciones son:

-Seleccionar un número x, tal que 1x<N y restarle 1 a Ax y sumarle 1 a Ax+1.

-Seleccionar un número x, tal que 1<xN y restarle 1 a Ax y sumarle 1 a Ax1.

Diga el número mínimo de operaciones que se tienen que realizar para que exista un número K(K>1) que divida a todos los números de A.

Entrada

Una línea con un entero, N. Una línea con N enteros, el i-ésimo de ellos es Ai.

Salida

Un entero, la cantidad mínima de operaciones que se tienen que realizar para cumplir con la restricción, o -1 si es imposible de cumplir.

Subtareas

Subtarea 1: (50 puntos) 1N105, 0Ai1

Subtarea 2: (50 puntos) 1N106, 0Ai106

Ejemplo #1 de Entrada

Copy
3
1 0 1

Ejemplo #1 de Salida

Copy
2

Ejemplo #2 de Entrada

Copy
3
4 8 5

Ejemplo #2 de Salida

Copy
9

Ejemplo #3 de Entrada

Copy
5
3 10 2 1 5

Ejemplo #3 de Salida

Copy
2

Ejemplo #4 de Entrada

Copy
1
1

Ejemplo #4 de Salida

Copy
-1

Comments

There are no comments at the moment.