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

Количество запросов

Количество запросов

Даны два целых числа \textbf{n}, \textbf{k}. Рассмотрим функцию обработки запроса \textbf{\[from, to\]} деревом отрезков из вершины \textbf{idx}, которая соответствует отрезку массива \textbf{\[l, r\]} (\textbf{from} ≤ \textbf{to}, \textbf{l} ≤ \textbf{r}). \textbf{int get (int idx, int l, int r, int from, int to ) \{} \textbf{int ans = 1;} \textbf{if (l == from && r == to)} \textbf{return ans ;} \textbf{int mid = ( l + r ) / 2;} \textbf{if (from <= mid)} \textbf{ans += get ( 2 * idx + 1, l, mid, from, min (mid, to));} \textbf{if (to >= mid + 1 )} \textbf{ans += get ( 2 * idx + 2, mid + 1, r, max (from, mid + 1), to) ;} \textbf{return ans ;} \textbf{\}} Нужно найти количество запросов \textbf{\[from, to\]} (\textbf{0} ≤ \textbf{from} ≤ \textbf{to} ≤ \textbf{n-1}), таких что функция \textbf{get(0, 0, n-1, from, to) }вернет в качестве ответа \textbf{k}. Ответ выведите по модулю \textbf{10^9 + 9}. \InputFile В первой строке записаны через пробел два целых числа: \textbf{n} (\textbf{1} ≤ \textbf{n} ≤ \textbf{10^18}), \textbf{k} (\textbf{0} ≤ \textbf{k} ≤ \textbf{10^18}). \OutputFile Выведите одно целое число --- ответ на задачу \textbf{1000000009 }(\textbf{10^9 + 9}).
Лимит времени 1 секунда
Лимит использования памяти 256 MiB
Входные данные #1
6 5
Выходные данные #1
4
Источник Зимняя школа Харьков 2013, День 6 - Г.Агапова и И.Фефера