Ciclo más corto


Submit solution


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

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

Dados n números a[1],a[2],...,a[n], considera un grafo de n nodos donde los nodos i y j se conectan si y solo si a[i] AND a[j] es distinto de 0. (a[i]&a[j]0).

Busca el menor ciclo de dicho grafo o reporta que no tiene ningún ciclo.

Entrada

La primera línea contiene el número n. (1n105)

La segunda línea contiene n números a[1],a[2],...,a[n]. (0a[i]1018)

Salida

Imprima -1 si el grafo no tiene ciclos, de lo contrario imprima la longitud del mínimo ciclo.

Puntuación

Subtarea 1: N60. ( 60 puntos )

Subtarea 2: Sin restricciones adicionales. ( 40 puntos )

Ejemplo de Entrada 1

Copy
4
3 6 28 9

Ejemplo de Salida 1

Copy
4

Ejemplo de Entrada 2

Copy
5
5 12 9 16 48

Ejemplo de Salida 2

Copy
3

Ejemplo de Entrada 3

Copy
4
1 2 4 8

Ejemplo de Salida 3

Copy
-1

Explicación de los ejemplos

En el primer ejemplo el menor ciclo es (9,3,6,28).

En el segundo ejemplo el menor ciclo es (5,12,9).

En el tercer ejemplo no existe ningún ciclo.


Comments

There are no comments at the moment.