Даниярдың xor жұптары


Шешімді жөнелту

Ұпайлар: 100 (partial)
Уақыт шектеуі: 1.0s
Жад шектеуі: 256M

Author:
Problem type
Рұқсат етілген тілдер
Assembly, Awk, Brain****, C, C++, Go, Java, Kotlin, Pascal, Perl, PHP, Python, Sed, Text

Информатика мұғалімі Данияр \(A\) массивін қарайды, оның ұзындығы \(2^n\), яғни элементтері \(a_0, a_1, \dots, a_{2^n-1}\) берілген. Оған биттік виключающее ИЛИ (xor) операциясы ұнайды, сондықтан ол келесі шартты қанағаттандыратын барлық индекс жұптарын \((i, j)\) зерттейді: \[i \oplus j = k,\] мұнда \(k\) — берілген сан, ал \(\oplus\) — xor операциясы.

Барлық осындай жұптар ішінен Данияр \(a_i + a_j\) қосындысының мүмкін болатын ең үлкен мәнін тапқысы келеді.

Енгізу

Бірінші жолда екі бүтін сан \(n\) және \(k\) берілген (\(1 \le n \le 18\), \(1 \le k < 2^n\)). Екінші жолда \(2^n\) бүтін сан \(a_0, a_1, \dots, a_{2^n-1}\) берілген (\(0 \le a_i \le 10^9\)).

Шығару

Бір бүтін санды шығарыңыз — \(i \oplus j = k\) шарты орындалатын барлық \((i, j)\) жұптары бойынша \(a_i + a_j\) қосындысының ең үлкен мүмкін мәні.

Бағалау жүйесі

Топ Қосымша шектеулер Ұпай Қажетті топтар
1 \(n \le 9\) 40
2 Толық шектеулер 60 1

Мысалдар

Енгізу 1
2 1
1 5 3 4
Жауап 1
7