4082: 「HNOI2016」大数

内存限制:256 MB 时间限制:1.000 S
评测方式:文本比较 命题人:
提交:0 解决:0

题目描述

小 B 有一个很大的数 $ S $,长度达到了 $ N $ 位;这个数可以看成是一个串,它可能有前导 $ 0 $,例如 ``00009312345`` 。小 B 还有一个素数 $ P $。 现在,小 B 提出了 $ M $ 个询问,每个询问求 $ S $ 的一个子串中有多少子串是 $ P $ 的倍数($ 0 $ 也是 $ P $ 的倍数)。例如 $ S $ 为 ``0077`` 时,其子串 ``007 `` 有六个子串:``0``, ``0``, ``7``, ``00``, ``07``, ``007``;显然 ``0077`` 的子串 ``077`` 的六个子串都是素数 $ 7 $ 的倍数。

输入

第一行一个整数:$ P $。 第二行一个串:$ S $。 第三行一个整数:$ M $。 接下来 $ M $ 行,每行两个整数 $ \text{fr}, \text{to}$,表示对 $ S $ 的子串 $S[\text{fr} \ldots \text {to}]$ 的一次询问。 注意:$ S $ 的最左端的数字的位置序号为 $ 1 $;例如 $ S $ 为 $ 213567 $,则 $ S[1] $ 为 $ 2 $,$ S[1 \ldots 3] $为 $ 213 $。

输出

输出 $ M $ 行,每行一个整数,第 $ i $ 行是第 $ i $ 个询问的答案。

样例输入 复制

11
121121
3
1 6
1 5
1 4

样例输出 复制

5
3
2

提示


数据范围:对于所有的数据,$ N,M \leq 100000 $,$ P $ 为素数。

来源/分类