eolymp
bolt
Try our new interface for solving problems
Məsələlər

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

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

Даны два целых числа \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}).
Zaman məhdudiyyəti 1 saniyə
Yaddaşı istafadə məhdudiyyəti 256 MiB
Giriş verilənləri #1
6 5
Çıxış verilənləri #1
4
Mənbə Winter School Kharkov 2013, Day 6 - G.Agapov and I.Fefer