Олимпиадный тренинг

Задача . F. Биты и выбор


Вам дан массив \(a\) из \(n\) целых чисел.

Вам нужно найти наибольшее возможное значение \(a_{i} | ( a_{j} \& a_{k} )\) по всем таким тройкам \((i,j,k)\), что \(i < j < k\).

Здесь \(\&\) обозначает операцию побитового И, а \(|\) обозначает операцию побитового ИЛИ.

Входные данные

В первой строке ввода записано целое число \(n\) (\(3 \le n \le 10^{6}\)) — размер массива \(a\).

Во второй строке записаны \(n\) целых чисел, разделенных пробелами \(a_1\), \(a_2\), ..., \(a_n\) (\(0 \le a_{i} \le 2 \cdot 10^{6}\)) — массив \(a\).

Выходные данные

Выведите одно целое число — максимальное возможное значение выражения, описанного в условии.

Примечание

В первом примере единственная возможная тройка это \((1, 2, 3)\). Таким образом, ответ равен \(2 | (4 \& 6) = 6\).

Во втором примере есть \(4\) возможные тройки:

  1. \((1, 2, 3)\), значение которой \(2|(8\&4) = 2\).
  2. \((1, 2, 4)\), значение которой \(2|(8\&7) = 2\).
  3. \((1, 3, 4)\), значение которой \(2|(4\&7) = 6\).
  4. \((2, 3, 4)\), значение которой \(8|(4\&7) = 12\).

Таким образом максимальное значение равно \(12\).


Примеры
Входные данныеВыходные данные
1 3
2 4 6
6
2 4
2 8 4 7
12

time 2000 ms
memory 256 Mb
Правила оформления программ и список ошибок при автоматической проверке задач

Статистика успешных решений по компиляторам
Комментарий учителя