#abc158e. [abc158_e]Divisible Substring

[abc158_e]Divisible Substring

题目描述

Takahashi 有一个长度为 NN 且由数字 09 组成的字符串 SS

他喜欢素数 PP。他想知道在将 SS 视为十进制整数时,有多少个非空(连续的)子串能被 PP 整除。

这里,以 0 开头的子串也计入在内,并且来自 SS 的不同位置的子串是不同的,即使它们作为字符串或整数相等。

请计算这个数量,帮助 Takahashi。

约束条件

  • 1N2×1051 \leq N \leq 2 \times 10^5
  • SS 由数字组成。
  • S=N|S| = N
  • 2P100002 \leq P \leq 10000
  • PP 是一个素数。

输入

从标准输入读取输入数据,输入格式如下:

NN PP SS

输出

打印在将 SS 视为十进制整数时能被 PP 整除的非空(连续的)子串的数量。

示例输入 1

4 3
3543

示例输出 1

这里 SS = 3543。有十个非空(连续的)子串:

  • 3:能被 33 整除。

  • 35:不能被 33 整除。

  • 354:能被 33 整除。

  • 3543:能被 33 整除。

  • 5:不能被 33 整除。

  • 54:能被 33 整除。

  • 543:能被 33 整除。

  • 4:不能被 33 整除。

  • 43:不能被 33 整除。

  • 3:能被 33 整除。

其中有六个能被 33 整除,因此打印 66

示例输入 2

4 2
2020

示例输出 2

10

这里 SS = 2020。有十个非空(连续的)子串,所有这些子串都能被 22 整除,因此打印 1010

注意,以 0 开头的子串也计入在内。

示例输入 3

20 11
33883322005544116655

示例输出 3

68