Codeforces Round 173 (Div. 2) |
---|
Закончено |
Необъяснимый народ эти битландцы. У них свои проблемы и свои решения. Свои мысли и свои убеждения, свои ценности и свои идеалы. Свои тарелки и свои сосиски!
В Битландии сосиска — это массив целых чисел! Аппетитность сосиски равна побитовому исключающему ИЛИ (операция xor) всех элементов сосиски.
Как-то раз, когда Mr. Bitkoch (местный повар) уже закрывал свой ресторан BitRestaurant, BitHaval и BitAryo (самые известные жители Битландии) зашли в ресторан и заказали по сосиске.
У Mr. Bitkoch осталась ровно одна сосиска. Поэтому он решил отрезать начало сосиски (сколько-то, возможно ноль, первых чисел массива) и отдать его BitHaval-у, BitAryo же достанется некоторый конец сосиски (сколько-то, возможно ноль, последних чисел массива). Обратите внимание, что оба куска сосиски одновременно или по отдельности могут быть пустыми. Конечно, отрезанные куски не должны пересекаться (никакой элемент массива не может содержаться в обоих кусках).
Удовольствие, которое получат BitHaval и BitAryo от ужина, равно побитовому исключающему ИЛИ аппетитностей их сосисок. Аппетитность пустой сосиски равна нулю.
Найдите способ отрезать BitHaval-у и BitAryo по куску сосиски, чтобы максимизировать их удовольствие от ужина.
В первой строке записано целое число n (1 ≤ n ≤ 105).
В следующей строке записано n целых чисел a1, a2, ..., an (0 ≤ ai ≤ 1012) — сосиска, которая осталась у Mr. Bitkoch.
Пожалуйста, не используйте спецификатор %lld для чтения или записи 64-х битовых чисел на С++. Рекомендуется использовать потоки cin, cout или спецификатор %I64d.
Выведите единственное целое число — максимальное удовольствие, которое могут получить BitHaval и BitAryo от ужина.
2
1 2
3
3
1 2 3
3
2
1000 1000
1000
Название |
---|