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 - Г.Агапова та І.Фефера