#ATabc122c. [ABC122C] GeT AC

[ABC122C] GeT AC

AT_abc122_c [ABC122C] GeT AC

题目描述

给定一个由 ACGT 组成的长度为 NN 的字符串 SS。请回答以下 QQ 个问题。

  • 问题 ii1iQ1 \leq i \leq Q):给定整数 li,ril_i, r_i1li<riN1 \leq l_i < r_i \leq N)。考虑 SS 的第 lil_i 个字符到第 rir_i 个字符(包括两端)组成的子串。在这个子串中,AC 作为子串出现了多少次?

输入格式

输入按以下格式从标准输入给出。

NN QQ
SS
l1l_1 r1r_1
\vdots
lQl_Q rQr_Q

输出格式

输出共 QQ 行。第 ii 行输出问题 ii 的答案。

样例 1

输入

8 3
ACACTACG
3 7
2 3
1 8

输出

2
0
3

说明/提示

注释

字符串 TT 的子串是指从 TT 的开头和结尾各去掉 00 个或多个字符后得到的字符串。

例如,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

样例解释 1

  • 问题 11SS 的第 33 个字符到第 77 个字符的子串为 ACTAC。在这个字符串中,AC 作为子串出现了 22 次。
  • 问题 22SS 的第 22 个字符到第 33 个字符的子串为 CA。在这个字符串中,AC 作为子串出现了 00 次。
  • 问题 33SS 的第 11 个字符到第 88 个字符的子串为 ACACTACG。在这个字符串中,AC 作为子串出现了 33 次。

由 ChatGPT 4.1 翻译