AT_abc158_e [ABC158E] Divisible Substring

Description

[problemUrl]: https://atcoder.jp/contests/abc158/tasks/abc158_e 高橋君は `0` から `9` までの数字から成る長さ $ N $ の文字列 $ S $ を持っています。 素数 $ P $ が好きな高橋君は、$ S $ の空でない連続する部分文字列 $ N\ \times\ (N\ +\ 1)\ /\ 2 $ 個のうち、十進表記の整数と見なした際に $ P $ で割り切れるものの個数を知りたくなりました。 ただし部分文字列は先頭が `0` であっても良いものとし、文字列として等しい場合や、整数と見なした際に等しい場合も、部分文字列の $ S $ 内の位置で区別します。 高橋君のためにこの個数を計算してください。

Input Format

N/A

Output Format

N/A

Explanation/Hint

### 制約 - $ 1\ \leq\ N\ \leq\ 2\ \times\ 10^5 $ - $ S $ は数字から成る - $ |S|\ =\ N $ - $ 2\ \leq\ P\ \leq\ 10000 $ - $ P $ は素数である ### Sample Explanation 1 $ S $ = `3543` です。$ S $ の空でない連続する部分文字列は次の $ 10 $ 個があります。 - `3` は $ 3 $ で割り切れる。 - `35` は $ 3 $ で割り切れない。 - `354` は $ 3 $ で割り切れる。 - `3543` は $ 3 $ で割り切れる。 - `5` は $ 3 $ で割り切れない。 - `54` は $ 3 $ で割り切れる。 - `543` は $ 3 $ で割り切れる。 - `4` は $ 3 $ で割り切れない。 - `43` は $ 3 $ で割り切れない。 - `3` は $ 3 $ で割り切れる。 このうち $ 3 $ で割り切れるものは $ 6 $ 個であるので、$ 6 $ を出力してください。 ### Sample Explanation 2 $ S $ = `2020` です。$ S $ の空でない連続する部分文字列は $ 10 $ 個ありますが、その全てが $ 2 $ で割り切れるので $ 10 $ を出力してください。 先頭が `0` である部分文字列も許容されることに注意してください。