#AT1087. GeT AC

GeT AC

题目描述

给定一个长度为 NN 的字符串 SS,由字符 ACGT组成。

回答以下 QQ 个查询:査询i(1<iQ)i(1 <i≤ Q): 给岀整数 lil_iri(1li<ri<N)r_i(1 ≤l_i < r_i< N)。考虑字符串 SS 中从索引lil_i到索引rir_i;(两者都包含) 的子串。

在这个子串中,有多少次子字符串 AC 出现?

注意事项

字符串 TT 的子串是通过从开头和末尾移除零个或多个字符获得的字符串。

例如,字符串 ATCODER 的子串包括 TCOATCODERATCODER 和 (空字符串),但不包括 AC

输入

第一行一个整数表示字符串长度NN和询问次数QQ

第二行一个字符串SS

接下来QQ行,表示QQ次询问

输出

输出应该包含QQ行。第ii行应包含第ii个查询的答案。

8 3
ACACTACG
3 7
2 3
1 8
2
0
3

样例解释

查询 1:字符串 SS 中从索引3到索引7的子串是 ACTAC。在这个子串中,AC 作为子字符串出现了两次。

查询 2:字符串 SS 中从索引 2到索引3的子串是 CA。在这个子串中,AC 作为子字符串出现了零次。

查询 3:字符串 SS中从索引1到索引8的子串是 ACACTACG。在这个子串中,AC 作为子字符串出现了三次。

提示

2N105 2 \leq N \leq 10^5

1Q105 1 \leq Q \leq 10^5

SS的长度是NN

SS中的每个字符是A,C,G,T

1li<riN 1 \leq l_i < r_i \leq N