atcoder#ABC122C. [ABC122C] GeT AC

[ABC122C] GeT AC

题目描述

A, C, G, T からなる長さ N N の文字列 S S が与えられます。以下の Q Q 個の問いに答えてください。

  • i i (1  i  Q 1\ \leq\ i\ \leq\ Q ): 整数 li, ri l_i,\ r_i (1  li < ri  N 1\ \leq\ l_i\ <\ r_i\ \leq\ N ) が与えられる。S S の先頭から li l_i 文字目から ri r_i 文字目までの (両端含む) 部分文字列を考える。この文字列に AC は部分文字列として何回現れるか。

输入格式

入力は以下の形式で標準入力から与えられる。

N N Q Q S S l1 l_1 r1 r_1 : : lQ l_Q rQ r_Q

输出格式

Q Q 行出力せよ。i i 行目に問 i i への答えを出力すること。

题目大意

您将得到一个长度为 NN 的字符串 SS,它由 ACGT 组成。回答以下 QQ 个问题:

  • 问题 i(1iQ)i (1\leq i\leq Q): 你将获得整数 lil_i and rir_i (1li<riN)(1\leq l_i < r_i \leq N)。考虑 SS 的子字符串,从索引 lil_i 开始到索引 rir_i(包括两端)。 在此字符串中,AC 作为子字符串出现了多少次?
8 3
ACACTACG
3 7
2 3
1 8
2
0
3

提示

注記

文字列 T T の部分文字列とは、T T の先頭と末尾から 0 0 文字以上を取り去って得られる文字列です。

例えば、ATCODER の部分文字列には TCO, AT, CODER, ATCODER, `` (空文字列) が含まれ、AC は含まれません。

制約

  • 2  N  105 2\ \leq\ N\ \leq\ 10^5
  • 1  Q  105 1\ \leq\ Q\ \leq\ 10^5
  • S S は長さ N N の文字列である。
  • S S の各文字は A, C, G, T のいずれかである。
  • 1  li < ri  N 1\ \leq\ l_i\ <\ r_i\ \leq\ N

Sample Explanation 1

- 問 1 1 : S S の先頭から 3 3 文字目から 7 7 文字目までの部分文字列は ACTAC です。この文字列に AC は部分文字列として 2 2 回現れます。 - 問 2 2 : S S の先頭から 2 2 文字目から 3 3 文字目までの部分文字列は CA です。この文字列に AC は部分文字列として 0 0 回現れます。 - 問 3 3 : S S の先頭から 1 1 文字目から 8 8 文字目までの部分文字列は ACACTACG です。この文字列に AC は部分文字列として 3 3 回現れます。