eolymp
bolt
Спробуйте наш новий інтерфейс для відправки розв'язків
Задачі

Звортній порядок

Звортній порядок

Розглянемо рекурсивну функцію, визначену над масивом \textbf{A}, який складається з \textbf{n=2^k} елементів \textbf{a_0}, \textbf{a_1}, ..., \textbf{a_\{n-1\}}. Розділимо масив \textbf{A} на два масиви \textbf{A_1}, який складається з \textbf{2^\{k-1\}} елементів \textbf{a_0}, \textbf{a_2}, ..., \textbf{a_\{n-2\}} та \textbf{A_2}, який складається з \textbf{2^\{k-1\}} елементів \textbf{a_1}, \textbf{a_3}, ..., \textbf{a_\{n-1\}}. Після цього запустимо рекурсивну функцію спочатку від масиву \textbf{A_1}, а потім від масиву \textbf{A_2}. Будемо повторювати процес до тих пір, доки не отримаємо масив з одного елементу. Тоді запишемо цей елемент на аркуш паперу. Ваша задача визначити яке число будет записане \textbf{m}-м на аркуші. Можна вважати, що спочатку масив \textbf{A} складається з елементів \textbf{0}, \textbf{1}, \textbf{2}, ..., \textbf{n-1}. \InputFile У єдиному рядку вхідних даних записано два цілих числа \textbf{k} та \textbf{m} (\textbf{1} ≤ \textbf{k} ≤ \textbf{40}, \textbf{1} ≤ \textbf{m} ≤ \textbf{2^k}). Нагадаємо, що \textbf{n=2^k}. \OutputFile У єдиний рядок вихідних даних виведіть ціле число, яке буде записане \textbf{m}-им по рахунку.
Ліміт часу 0.5 секунд
Ліміт використання пам'яті 64 MiB
Вхідні дані #1
2 1
Вихідні дані #1
0

Пояснення: Нехай спочатку k=2, тоді масив A являє собою елементи 0, 1, 2, 3. Тоді на першому кроці ми перейдемо до двох масивів A1=(0, 2) та A2=(1, 3). В результаті, числа будуть записані на аркуші у порядку 0, 2, 1, 3.

Автор Євген Соболєв
Джерело Літня школа Севастополь 2013, Хвиля 1, День 5