atcoder#ABC158E. [ABC158E] Divisible Substring

[ABC158E] Divisible Substring

Score : 500500 points

Problem Statement

Takahashi has a string SS of length NN consisting of digits from 0 through 9.

He loves the prime number PP. He wants to know how many non-empty (contiguous) substrings of SS - there are N×(N+1)/2N \times (N + 1) / 2 of them - are divisible by PP when regarded as integers written in base ten.

Here substrings starting with a 0 also count, and substrings originated from different positions in SS are distinguished, even if they are equal as strings or integers.

Compute this count to help Takahashi.

Constraints

  • 1N2×1051 \leq N \leq 2 \times 10^5
  • SS consists of digits.
  • S=N|S| = N
  • 2P100002 \leq P \leq 10000
  • PP is a prime number.

Input

Input is given from Standard Input in the following format:

NN PP

SS

Output

Print the number of non-empty (contiguous) substrings of SS that are divisible by PP when regarded as an integer written in base ten.

4 3
3543
6

Here SS = 3543. There are ten non-empty (contiguous) substrings of SS:

  • 3: divisible by 33.
  • 35: not divisible by 33.
  • 354: divisible by 33.
  • 3543: divisible by 33.
  • 5: not divisible by 33.
  • 54: divisible by 33.
  • 543: divisible by 33.
  • 4: not divisible by 33.
  • 43: not divisible by 33.
  • 3: divisible by 33.

Six of these are divisible by 33, so print 66.

4 2
2020
10

Here SS = 2020. There are ten non-empty (contiguous) substrings of SS, all of which are divisible by 22, so print 1010.

Note that substrings beginning with a 0 also count.

20 11
33883322005544116655
68