小明創(chuàng)造了一個函數(shù) f(x) 用來翻轉 x 的二進制的數(shù)位(無前導 0)。比如f(11) = 13,因為 11 = (1011)2,將其左右翻轉后,變?yōu)?13 = (1101)2;再比如f(3) = 3,f(0) = 0,f(2) = f(4) = f(8) = 1 等等。
小明隨機出了一個長度為 n 的整數(shù)數(shù)組 {a1, a2, ..., an},他想知道,在這個數(shù)組中選擇最多 m 個不相交的區(qū)間,將這些區(qū)間內的數(shù)進行二進制數(shù)位翻轉(將ai 變?yōu)?f(ai))后,整個數(shù)組的和最大是多少?
輸入共 2 行。
第一行為兩個正整數(shù) n, m。
第二行為 n 個由空格分開的整數(shù) a1, a2, ..., an。
輸出共 1 行,一個整數(shù)表示答案。
5 3 11 12 13 14 15
67
【樣例說明 1】只翻轉 a1,和為 13 + 12 + 13 + 14 + 15 = 67。
再比如:
【樣例輸入 2】6 223 8 11 19 16 35
【樣例輸出 2】134
【樣例說明 2】翻轉區(qū)間 [a3, a4] 和 [a6],和為 23 + 8 + 13 + 25 + 16 + 49 = 134。
【評測用例規(guī)模與約定】
對于 20% 的評測用例,保證 n, m ≤ 20。
對于 100% 的評測用例,保證 n, m ≤ 1000,0 ≤ ai ≤ 109。