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