Operaciones a nivel de bits

A veces necesitamos realizar operaciones sobre pares de números binarios. Si tenemos dos números a y b, podríamos querer que todos los bits estuvieran en 0 excepto aquellos que sean 1 tanto en a como en b (esto corresponde a la operación AND). Por otro lado, podríamos querer tener 1 en todas las posiciones donde a o b tengan un 1 (esto corresponde a la operación OR).

a

b (OR)

b

a

a ^ b (XOR)
exclusive OR

representaciones en binario y decimal

representaciones en binario y decimal

1 si ambos y son 1 y 0 en caso contrario

1 si o bien o son 1 y 0 en caso contrario

1 si los bits son distintos y 0 en caso contrario

110 (6)

101 (5)

100 (4)

111 (7)

011 (3)

100111 (39)

010100 (20)

100 (4)

110111 (55)

110011 (51)

Desafío

Dado n enteros, se te pide encontrar 2 de ellos que, al aplicar OR, den como resultado el número más grande posible.

Entrada

La primera línea de la entrada contiene un solo entero n (1 ≤ n ≤ 1000).

La siguiente línea contiene n enteros separados por espacios (1 ≤ ).

Salida

La salida debe contener el mayor valor que puedas obtener al aplicar la operación OR a 2 de los números dados.

Ejemplos

Entrada

Salida

5
1 2 3 4 5

7

Explicación

Podemos obtener 7 al aplicar OR a:

  • 2 (010) y 5 (101) → 7 (111)

  • 3 (011) y 4 (100) → (111)

Constraints

Time limit: 2 seconds

Memory limit: 512 MB

Output limit: 1 MB

To check your solution you need to sign in
Sign in to continue