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

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 секунда
Ліміт використання пам'яті 64 MiB
Вхідні дані #1
3
3 1 2
1 0 0
9 5 12
Вихідні дані #1
01
1
10101101