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] \neq 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. (1 \leq n \leq 10^5 )

La segunda línea contiene n números a[1], a[2], ... , a[n]. (0 \leq a[i] \leq 10^{18} )

Salida

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

Puntuación

Subtarea 1:  N \leq 60 . ( 60 puntos )

Subtarea 2: Sin restricciones adicionales. ( 40 puntos )

Ejemplo de Entrada 1

4
3 6 28 9

Ejemplo de Salida 1

4

Ejemplo de Entrada 2

5
5 12 9 16 48

Ejemplo de Salida 2

3

Ejemplo de Entrada 3

4
1 2 4 8

Ejemplo de Salida 3

-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.