A volte è necessario eseguire operazioni su coppie di numeri binari. Se abbiamo due numeri a e b, potremmo voler avere tutte le cifre impostate a 0 tranne quelle impostate a 1 in entrambi (a e b): questa è l’operazione AND. In altri casi, potremmo voler avere tutte le cifre impostate a 1 nelle posizioni in cui a o b presentano un 1: questa è l’operazione OR.
a
b (OR)
b
a
a ^ b (XOR) exclusive OR
rappresentazioni binarie e decimali
rappresentazioni binarie e decimali
1 se entrambi e sono 1 e 0 altrimenti
1 se o sono 1 e 0 altrimenti
1 se i bit sono diversi e 0 altrimenti
110 (6)
101 (5)
100 (4)
111 (7)
011 (3)
100111 (39)
010100 (20)
100 (4)
110111 (55)
110011 (51)
Sfida
Dati n interi, ti viene richiesto di trovarne due che, dopo aver applicato l’operazione OR, diano come risultato il valore più grande possibile.
Input
La prima riga dell’input contiene un singolo intero n (1 ≤ n ≤ 1000).
La riga successiva contiene n interi separati da uno spazio, (1 ≤ ≤ ).
Output
L’output deve contenere il valore massimo ottenibile applicando l’operazione OR tra 2 dei numeri forniti.