题目描述

小 B 有一个很大的数 SS,长度达到了 NN 位;这个数可以看成是一个串,它可能有前导 00,例如 00009312345 。小B还有一个素数 PP

现在,小 B 提出了 MM 个询问,每个询问求 SS 的一个子串中有多少子串是 PP 的倍数(00 也 是 PP 的倍数)。

例如 SS00770077 时,其子串 00700766 个子串:0,0,7,00,07,007;显然 0077 的子串 00766 个子串都是素数 77 的倍数。

输入格式

第一行一个整数:PP

第二行一个串:SS

第三行一个整数:MM

接下来 MM 行,每行两个整数 fr,tofr,to ,表示对 SS 的 子串 S[frto]S[fr…to] 的一次询问。注意:SS 的最左端的数字的位置序号为 11;例如 SS213567,则 S[1]S[1]2S[13]S[1…3]213

数据范围

N,M100000N,M \le 100000PP 为素数 。

输出格式

输出 MM 行,每行一个整数,第 ii 行是第 ii 个询问的答案。

样例

11 
121121 
3 
1 6 
1 5 
1 4 
5
3
2

样例 1 解释

第一个询问问的是整个串,满足条件的子串分别有:121121, 2112, 11, 121, 121

提示

2016.4.19 新加数据一组

题目来源

没有写明来源

0 条评论

目前还没有评论...

信息

ID
4542
时间
1000ms
内存
256MiB
难度
7
标签
(无)
递交数
34
已通过
10
上传者