AT_qupc2018_j Repeat Strings
Description
[problemUrl]: https://atcoder.jp/contests/qupc2018/tasks/qupc2018_j
`a` と `b` からなる文字列 $ S $ があって、以下の操作を好きな回数だけ行うことができます。
- $ S $ の連続する区間 $ [l,\ r] $ を選ぶ。$ l\ \leq\ k\ \leq\ r $ を満たすすべての整数 $ k $ に対し、$ S_k $ が `a` なら $ S_k $ を `b` に、$ S_k $ が `b` なら $ S_k $ を `a` に置き換える。
$ Q $ 個の 文字列 $ T_i $ が与えられます。各 $ T_i $ は `a` と `b` からなります。$ T_i $ を $ 10^{100} $ 回連結し $ |S|+1 $ 文字目以降をすべて切り落とした文字列を $ T'_i $ とします。
それぞれの文字列 $ T'_i $ に対し、$ S $ を $ T'_i $ に一致させるために必要な操作回数の最小値を求めてください。
Input Format
入力は以下の形式で標準入力から与えられる。
> $ S $ $ Q $ $ T_1 $ $ T_2 $ $ : $ $ T_Q $
Output Format
$ Q $ 行出力せよ。$ i $ 行目には $ S $ を $ T'_i $ に一致させるために必要な操作回数の最小値を出力せよ。
Explanation/Hint
### 制約
- $ 1\ \leq\ |S|\ \leq\ 2\ \times\ 10^5 $
- $ 1\ \leq\ Q\ \leq\ 2\ \times\ 10^5 $
- $ 1\ \leq\ |T_i|\ \leq\ 2\ \times\ 10^5 $
- $ T_i $ の長さの合計は $ 2\ \times\ 10^5 $ 以下
- $ S $, $ T_i $ は `a` と `b` からなる文字列
- $ Q $ は整数
### Sample Explanation 1
それぞれの $ T'_i $ は次の通りです。 - $ T'_1\ = $ `abababababa` - $ T'_2\ = $ `bbbbbbbbbbb` - $ T'_3\ = $ `babaabbabab` - $ T'_4\ = $ `aaaaaaaaaaa` 例えば $ S $ を $ T'_1 $ に一致させるために必要な操作回数の最小値は $ 2 $ です。`babaabbabab` → `ababbaababa` → `abababababa` の手順で達成可能です。