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

Задача . B. Кобб


Вам даны \(n\) целых чисел \(a_1, a_2, \ldots, a_n\) и целое число \(k\). Найдите максимальное значение \(i \cdot j - k \cdot (a_i | a_j)\) среди всех пар \((i, j)\) целых чисел таких, что \(1 \le i < j \le n\). Здесь \(|\) обозначает операцию побитового ИЛИ.

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

Первая строка содержит одно целое число \(t\) (\(1 \le t \le 10\,000\))  — количество наборов входных данных.

Первая строка каждого набора входных данных содержит два целых числа \(n\) (\(2 \le n \le 10^5\)) и \(k\) (\(1 \le k \le \min(n, 100)\)).

Вторая строка каждого набора входных данных содержит \(n\) целых чисел \(a_1, a_2, \ldots, a_n\) (\(0 \le a_i \le n\)).

Гарантируется, что сумма \(n\) по всем наборам входных данных не превышает \(3 \cdot 10^5\).

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

Для каждого тестового случая выведите одно целое число — максимально возможное значение \(i \cdot j - k \cdot (a_i | a_j)\).

Примечание

Пусть \(f(i, j) = i \cdot j - k \cdot (a_i | a_j)\).

В первом наборе входных данных,

  • \(f(1, 2) = 1 \cdot 2 - k \cdot (a_1 | a_2) = 2 - 3 \cdot (1 | 1) = -1\).
  • \(f(1, 3) = 1 \cdot 3 - k \cdot (a_1 | a_3) = 3 - 3 \cdot (1 | 3) = -6\).
  • \(f(2, 3) = 2 \cdot 3 - k \cdot (a_2 | a_3) = 6 - 3 \cdot (1 | 3) = -3\).

Таким образом, максимум равен \(f(1, 2) = -1\).

В четвертом наборе входных данных максимум равен \(f(3, 4) = 12\).


Примеры
Входные данныеВыходные данные
1 4
3 3
1 1 3
2 2
1 2
4 3
0 1 2 3
6 6
3 2 0 0 5 6
-1
-4
3
12

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

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