Parfois, il est nécessaire d’effectuer des opérations sur des paires de nombres binaires. Si nous avons deux nombres a et b, nous pouvons vouloir que tous les bits soient mis à 0, à l’exception de ceux à 1 dans les deux nombres (c’est l’opération AND). Dans d’autres cas, nous pouvons souhaiter obtenir des bits à 1 partout où a ou b possède déjà un bit à 1 (c’est l’opération OR).
OU exclusif
a
b (OR)
a
a ^ b (XOR)
représentations binaires et décimales
représentations binaires et décimales
Vaut 1 si et valent 1, sinon 0
Vaut 1 si ou vaut 1, sinon 0
Vaut 1 si les bits sont différents, sinon 0
110 (6)
101 (5)
100 (4)
111 (7)
011 (3)
100111 (39)
010100 (20)
100 (4)
110111 (55)
110011 (51)
Challenge
Étant donné n entiers, votre tâche est de trouver 2 de ces entiers qui, après l’application de l’opération OR, donnent la plus grande valeur possible.
Entrée
La première ligne de l’entrée contient un entier n (1 ≤ n ≤ 1000).
La ligne suivante contient n entiers séparés par des espaces (1 ≤ ≤ ).
Sortie
Vous devez afficher la plus grande valeur obtenue en appliquant une opération OR sur 2 des valeurs fournies.