AT_abc450_e [ABC450E] Fibonacci String
Description
文字列 $ X,Y $ が与えられます。文字列の列 $ S_1,S_2,\dots $ を以下で定義します。
- $ S_1=X $
- $ S_2=Y $
- $ i\geq 3 $ のとき、 $ S_i $ は $ S_{i-1} $ と $ S_{i-2} $ をこの順に連結したもの
各 $ i=1,2,\ldots,Q $ について以下の問題に答えてください。
問題:整数 $ L_i,R_i $ と文字 $ C_i $ が与えられる。 $ S_{10^{18}} $ の $ L_i $ 文字目から $ R_i $ 文字目までに文字 $ C_i $ が何個含まれるか求めよ。
Input Format
入力は以下の形式で標準入力から与えられる。
> $ X $ $ Y $ $ Q $ $ L_1 $ $ R_1 $ $ C_1 $ $ L_2 $ $ R_2 $ $ C_2 $ $ \vdots $ $ L_Q $ $ R_Q $ $ C_Q $
Output Format
$ Q $ 行出力せよ。
$ i $ 行目には $ S_{10^{18}} $ の $ L_i $ 文字目から $ R_i $ 文字目までに文字 $ C_i $ が何個含まれるかを出力せよ。
Explanation/Hint
### Sample Explanation 1
$ S_3,S_4,S_5 $ はそれぞれ`ba`, `bab`, `babba` となります。
$ S_{10^{18}} $ は `babbababbabba...` であり、その $ 2 $ 文字目から $ 7 $ 文字目に `a` は $ 3 $ 個含まれます。
### Constraints
- $ X,Y $ は英小文字からなる長さ $ 1 $ 以上 $ 10^4 $ 以下の文字列
- $ 1 \leq Q \leq 10^5 $
- $ 1 \leq L_i \leq R_i \leq 10^{18} $
- $ C_i $ は英小文字
- 与えられる数値は全て整数