Булеві екстремуми#2439

Булеві екстремуми

1 секунда
256 мегабайтів
Дуже складна

Дано множину невід'ємних цілих чисел A = \{ a_1, a_2, \ldots, a_n \}. Розглянемо вибір будь-якої непорожньої підмножини чисел a_{i_1}, a_{i_2}, \ldots, a_{i_k} і виконання над усіма ними побітової операції "and", тобто обчислення a_{i_1}~\&~a_{i_2}~\&~\ldots~\&~a_{i_k}.

Ваше завдання — визначити мінімальне і максимальне значення, які можна отримати, обираючи підмножину для побітової операції "and". Додатково визначте мінімальне і максимальне значення, які можна отримати, обираючи підмножину і виконуючи побітові операції "or" () та "виключне або" (^).

Вхідні дані

Перший рядок містить одне ціле число (1 \leq n \leq 500). Другий рядок містить елементи множини : a_1, a_2, \ldots, a_n (0 \leq a_i < 2^{63}).

Вихідні дані

У першому рядку виведіть мінімальне і максимальне значення для операції "and". У другому рядку виведіть мінімальне і максимальне значення для операції "or". У третьому рядку виведіть мінімальне і максимальне значення для операції "виключне або".

Приклади

Приклад 1

Loading
Loading