4187 - 密钥激活

题目描述

有一种简单的密码通信协议。发送方传来一段长度为 N 的密文序列,序列中每个字符均取自 {\texttt{A},\ \texttt{C},\ \texttt{G},\ \texttt{T}} 四种信号符号之一。

密码研究员发现了一条规律:当密文中某位置 j 的符号为 \texttt{A},且紧接着第 j+1 位的符号为 \texttt{C} 时,代表发生了一次密钥激活事件——这往往意味着一段重要信息的开始。

研究员对这段密文共提出了 Q 次区间查询。对于第 i 次查询,给定区间端点 l_ir_i1 \leq l_i < r_i \leq N),他希望快速得知:满足以下条件的位置 j 共有多少个?

l_i \leq j < r_i,\quad S[j] = \texttt{A},\quad S[j+1] = \texttt{C}

请帮研究员回答全部 Q 次查询。

输入

输入共 Q + 2 行。

第一行包含两个正整数 NQ,分别表示密文序列的长度与查询次数,以单个空格分隔。

第二行包含长度为 N 的字符串 S,表示密文序列,每个字符均属于 {\texttt{A},\ \texttt{C},\ \texttt{G},\ \texttt{T}}

接下来 Q 行,第 i 行包含两个正整数 l_ir_i,以单个空格分隔。

输出

输出共 Q 行,第 i 行输出第 i 次查询的结果。

样例

输入

8 3
AACGACTA
1 8
3 6
1 3

输出

2
1
1

输入

6 3
GGTCCG
1 6
2 5
3 6

输出

0
0
0

输入

6 3
ACACAC
1 6
2 5
1 2

输出

3
1
1
说明

样例说明 1

密文序列为 \texttt{AACGACTA},下标从 1 起计。各相邻位置情况如下:

位置 jS[j]S[j+1]是否密钥激活
1\texttt{A}\texttt{A}
2\texttt{A}\texttt{C}
3\texttt{C}\texttt{G}
4\texttt{G}\texttt{A}
5\texttt{A}\texttt{C}
6\texttt{C}\texttt{T}
7\texttt{T}\texttt{A}
  • 查询 1l=1,\ r=8):统计 j \in [1,\ 7],激活位置为 25,共 2 次;
  • 查询 2l=3,\ r=6):统计 j \in [3,\ 5],仅位置 5 满足,共 1 次;
  • 查询 3l=1,\ r=3):统计 j \in [1,\ 2],仅位置 2 满足,共 1 次。

样例说明 2

密文序列 \texttt{GGTCCG} 中,任意相邻两位均不构成 \texttt{AC} 组合,因此三次查询的答案均为 0

数据范围

对于所有测试数据,保证:

  • 2 \leq N \leq 10^5
  • 1 \leq Q \leq 10^5
  • S 是长度为 N 的字符串,每个字符均属于 {\texttt{A},\ \texttt{C},\ \texttt{G},\ \texttt{T}}
  • 对所有 1 \leq i \leq Q,均有 1 \leq l_i < r_i \leq N
测试点编号N,Q特殊性质
1N=8,\ Q=3
2N=2,\ Q=1
3 \sim 4N=10^5,\ Q=10^5A
5 \sim 10N\le 10^5,\ Q\le 10^5

特殊性质 A:字符串 SAC 这个长度为 2 的串,连续重复 N/2 次得到。

标签
题目参数
时间限制 1 秒
内存限制 512 MB
提交次数 0
通过人数 0
金币数量 4 枚
难度 基础


上一题 下一题