#abc122c. [abc122_c]GeT AC

[abc122_c]GeT AC

题目描述

给定长度为 NN 的字符串 SS,其中包含字符 ACGT。回答以下 QQ 个查询:

  • ii 个查询(1iQ1 \leq i \leq Q):给定整数 lil_irir_i1li<riN1 \leq l_i < r_i \leq N),考虑从索引 lil_i 开始到索引 rir_i 结束(包括两者)的子串。在该子串中,AC 作为一个子串出现多少次?

注释

字符串 TT 的子串是通过从 TT 的开头和结尾删除零个或多个字符而得到的字符串。

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

约束条件

  • 2N1052 \leq N \leq 10^5
  • 1Q1051 \leq Q \leq 10^5
  • SS 是长度为 NN 的字符串。
  • SS 中每个字符都是 ACGT
  • 1li<riN1 \leq l_i < r_i \leq N

输入

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

NN QQ SS l1l_1 r1r_1lQl_Q rQr_Q

输出

打印出 QQ 行。第 ii 行应包含第 ii 个查询的答案。


示例输入 1

8 3
ACACTACG
3 7
2 3
1 8

示例输出 1

2
0
3
  • 11 个查询:从索引 33 开始到索引 77 结束的子串为 ACTAC。在该子串中,AC 作为一个子串出现了两次。
  • 22 个查询:从索引 22 开始到索引 33 结束的子串为 CA。在该子串中,AC 作为一个子串没有出现。
  • 33 个查询:从索引 11 开始到索引 88 结束的子串为 ACACTACG。在该子串中,AC 作为一个子串出现了三次。