Задачі
BFS (Binary Fibonacci String)
BFS (Binary Fibonacci String)
Ми знайомі з послідовністю Фібоначчі (\textbf{1}, \textbf{1}, \textbf{2}, \textbf{3}, \textbf{5}, \textbf{8}, ...). А що буде, якщо ми визначимо аналогічну послудовність для рядків? Звучить цікаво? Давайте подивимось.
Ми визначимо цю послідовність так:
\textbf{BFS(0) = 0}
\textbf{BFS(1) = 1} (тут "\textbf{0}" і "\textbf{1}" є рядками, а не просто числами \textbf{0} або \textbf{1})
для усіх (\textbf{n} > \textbf{1})
\textbf{BFS(n) = BFS(n - 2) + BFS(n - 1)} (тут \textbf{+} позначає операцію конкатенації). (тобто, \textbf{n}-ий рядок у цій послідовності являє собою об'єднанння двох попередніх рядків).
Отже, перші декілька рядків у цій послідовності такі: \textbf{0}, \textbf{1}, \textbf{01}, \textbf{101}, \textbf{01101} і так далі.
Ваша задача: для кожного заданого \textbf{N}-го рядка цієї послідовності знайти і вивести усі її елементи з \textbf{i}-ї по \textbf{j}-ту позицію включно (усі числа \textbf{N}, \textbf{i}, \textbf{j} нумеруються починаючи з \textbf{0}).
\InputFile
Перший рядок вхідного файлу містить ціле число \textbf{T}\textit{ (}\textbf{T}\textit{ ≤ }\textbf{100}\textit{)}, яке вказує загальну кількість тестів. Опис кожного тесту наведено нижче:
Три цілих числа \textbf{N}, \textbf{i}, \textbf{j} (\textbf{0} ≤ \textbf{N}, \textbf{i}, \textbf{j} ≤ \textbf{2^31 - 1}) та (\textbf{i} ≤ \textbf{j} і \textbf{j-i} ≤ \textbf{10000}). Можна також припустити, що \textbf{i} та \textbf{j} будуть індексами існуючих елементів рядка (тобто \textbf{0} ≤ \textbf{i}, \textbf{j} < \textit{length} of \textbf{BFS(N)}).
\OutputFile
Для кожного заданого тесту вивести шуканий підрядок \textbf{BFS(N)} з \textbf{i}-го по \textbf{j}-й символ у окремому рядку.
Вхідні дані #1
3 3 1 2 1 0 0 9 5 12
Вихідні дані #1
01 1 10101101