ENG  RUSTimus Online Judge
Online Judge
Задачи
Авторы
Соревнования
О системе
Часто задаваемые вопросы
Новости сайта
Форум
Ссылки
Архив задач
Отправить на проверку
Состояние проверки
Руководство
Регистрация
Исправить данные
Рейтинг авторов
Текущее соревнование
Расписание
Прошедшие соревнования
Правила

2110. Удалить или максимизировать

Ограничение времени: 2.0 секунды
Ограничение памяти: 64 МБ
Представьте, что у вас есть массив из n целых чисел. Но n — это слишком много, поэтому вы хотите удалить из него ровно k чисел. А выбрать эти k чисел нужно так, чтобы побитовое ИЛИ оставшихся чисел было как можно больше.
Гарантируется, что в любом тесте либо k ≤ 7, либо все числа в исходном массиве не превосходят 105.

Исходные данные

В первой строке даны два целых числа n и k, разделённые пробелом (0 ≤ k ≤ 100; k + 1 ≤ n ≤ 105). Во второй строке даны n неотрицательных целых чисел через пробел — элементы исходного массива (они не превосходят 109).

Результат

Выведите одно целое число — максимальное значение побитового ИЛИ оставшихся чисел.

Примеры

исходные данныерезультат
4 1
32 16 8 7
56
4 1
98765432 98765432 98765432 1
98765433

Замечания

Чтобы вычислить побитовое ИЛИ двух чисел, необходимо записать их в двоичной системе счисления, а затем рассмотреть каждый разряд. Если хотя бы в одном из чисел в этом разряде стоит 1, то в результирующем числе в этом разряде тоже будет стоять 1. В обратном случае там будет стоять 0.
Автор задачи: Алексей Данилюк
Источник задачи: Чемпионат УрФУ среди юниоров 2016