Hide

Problem C
Fibonacci Words

The Fibonacci word sequence of bit strings is defined as:

\begin{equation*} F(n) = \left\{ \begin{array}{ll} 0 & \text {if $n = 0$}\\ 1 & \text {if $n = 1$}\\ F(n-1) + F(n-2) & \text {if $n \ge 2$} \end{array}\right. \end{equation*}

Here $+$ denotes concatenation of strings. The first few elements are:

$n$

$F(n)$

0

0

1

1

2

10

3

101

4

10110

5

10110101

6

1011010110110

7

101101011011010110101

8

1011010110110101101011011010110110

9

1011010110110101101011011010110110101101011011010110101

Given a bit pattern $p$ and a number $n$, how often does $p$ occur in $F(n)$?

Input

The first line of each test case contains the integer $n$ ($0 \le n \le 100$). The second line contains the bit pattern $p$. The pattern $p$ is nonempty and has a length of at most $100\, 000$ characters.

Output

For each test case, display its case number followed by the number of occurrences of the bit pattern $p$ in $F(n)$. Occurrences may overlap. The number of occurrences will be less than $\mathrm{2}^\mathrm {63}$.

Sample Input 1 Sample Output 1
6
10
7
10
6
01
6
101
96
10110101101101
Case 1: 5
Case 2: 8
Case 3: 4
Case 4: 4
Case 5: 7540113804746346428

Please log in to submit a solution to this problem

Log in