Fibonacci substring

3.7

3 votes
Combinatorics, Easy, Fibonacci number, Math
Problem

Masha likes numbers. She likes Fibonacci numbers even more, so that she represents all natural numbers as sum of Fibonacci numbers. She calls it Fibonacci number system.

Fibonacci numbers is a sequence f, which is defined as follows: f0=f1=1 and fi=fi1+fi2 for all i>1.

Numbers in Fibonacci number system are represented as binary strings with no leading zeros and no two ones are consecutive. To represent natural number n in this system, one has to represent n as the sum of non-consecutive Fibonacci numbers: n=fi1+fi2++fim such that ij>0 and |ijik|>1 for all 1i,jm, ij. For example, let's say n=7, we can represent n=7=2+5=f2+f4, so 7 in Fibonacci number system is 1010, n=12 represented as 10101 and n=1 — as 1.

Masha got a piece of paper and started writing a big binary string s. Binary string s is formed as follows: initially she has empty string, then she appends Fibonacci number system representation of every natural number starting with 1 in increasing order. So the beginning of her string looks as follows: 110100101100010011010.... These are numbers from 1 to 7, their Fibonacci number system representations are: 1, 10, 100, 101, 1000, 1001, 1010.

Masha is very patient and hard-working, so she wrote a string s of length 1018. You are given L and R, and you want to find a part of the string starting from L up to R.

Input format

Input consists of single line containing two integers L and R (1L<R1018; RL105).

Output format

Output binary string of length (RL): sLsL+1sR1.

Time Limit: 2
Memory Limit: 256
Source Limit:
Explanation

These are s1s2s19 of Masha's string: 1101001011000100110.

Editor Image

?