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

Инновационная вешалка

Инновационная вешалка

Инновационная вешалка состоит из $n$ уровней, состоящих из связанных между собой стержней. Уровень $i$ (при $i = [0, n-1]$ ) состоит из $2^i$ горизонтальных стержней. Середина стержня на уровне $0$ прикреплена к стене. На всех остальных уровнях середина $j$-го (при $j= [1, 2^i]$) стержня прикреплена к левой части $j/2$-го стержня (округление вверх при делении на $2$) предыдущего уровня при нечетном $j$, или к правой части того же стержня при четном $j$. На обоих концах каждого стержня на последнем уровне висят крючки для одежды. Крючки пронумерованы слева направо числами от $1$ до $2^n$. Например, вешалка при $n$ = $3$ выглядит следующим образом: \includegraphics{https://static.e-olymp.com/content/59/59dc0f4b834bc8da66981e273e8938017ee59d8e.png} Маша хочет повесить все свои куртки на свою новую вешалку. Вес каждой куртки равен единице. Чтобы не сломать хрупкую конструкцию, она должна вешать куртки в таком порядке, чтобы разница между общим весом на левом конце любого стержня и общим весом на правом конце того же стержня после добавления очередной куртки была равна $0$ либо $1$. (По законам физики разница может быть равна и $-1$, однако Маша считает перекос в правую сторону ужасным.) Стержни такие тонкие, что их весом можно пренебречь. Маша наслышана о вашем профессионализме и просит вашей помощи. Напишите программу, которая по заданным $n$ и $k$ находит номер крючка по модулю $10^9+7$, на который Маша должна повесить куртку на $k$-м шаге. \InputFile На единственной строке заданы два целых числа $n$ и $k$ . \OutputFile Выведите одно целое число — номер крючка, на который Маша должна повесить куртку на $k$-м шаге по модулю $10^9+7$. \subsection{Ограничения} \begin{itemize} \item $n$ $[1, 10^6]$ \item $k$ $[1, min(2^n, 10^18)]$ \end{itemize} \Note В первом примере крючки должны быть использованы в следующем порядке: $1$, $5$, $3$, $7$, $2$, $6$, $4$, $8$. На втором шаге Маша должна повесить свою куртку на крючок номер $5$. Во втором примере порядок использования крючков такой: $1$, $17$, $9$, $25$, $5$, $21$, $13$, $29$, $3$ , $19$ , и т.д.
Лимит времени 1 секунда
Лимит использования памяти 64 MiB
Входные данные #1
3 2
Выходные данные #1
5
Входные данные #2
5 10
Выходные данные #2
19
Источник EJOI 2019 Day1