题目描述
对于一个字符串 s,我们定义 ∣s∣ 表示 s 的长度。
接着,我们定义 si 表示 s 中第 i 个字符,sl,r 表示由 s 中从左往右数,第 l 个字符到第 r 个字符依次连接形成的字符串。特别的,如果 l>r,或者 l∈/[1,∣s∣],或者 r∈/[1,∣s∣],我们可以认为 sl,r 为空串。
给定一个长度为 n 的仅由数字构成的字符串 s,现在有 q 次询问,第 k 次询问会给出 s 的一个子串 sl,r,请你求出有多少对 (i,j),满足 1≤i<j≤n,i+1<j,且 sl,r 出现在 s1,i 中或 si+1,j−1中或 sj,n 中。
输入格式
输入的第一行是两个整数,分别表示字符串长度 n 和询问次数 q。
第二行有一个长度为 n 的只包含数字字符的字符串,表示 s。
接下来 q 行,每行两个正整数 l 和 r,表示此次询问的子串是 sl,r。
输出格式
对于每个询问,输出一行一个整数表示答案。
5 2
00100
1 2
1 3
5
1
提示
测试点 |
n |
q |
其它约定 |
1 |
=50 |
=100 |
无 |
2∼3 |
=300 |
4∼5 |
=2000 |
=3000 |
6∼9 |
=100000 |
∑∣sl,r∣≤106 |
10∼12 |
=30000 |
=50000 |
无 |
13 |
=100000 |
=100000 |
s 中只有 0 |
14∼20 |
=300000 |
无 |
对于所有测试数据,1≤n≤105,1≤q≤3×105,1≤l≤r≤n,s 中只有数字字符。