#arc104b. [arc104_b]DNA Sequence

[arc104_b]DNA Sequence

题目描述

我们有一个长度为NN的字符串SS,由字符ATCG组成。

当字符串T1T_1T2T_2具有相同的长度时,如果对于每一个ii1il1 \leq i \leq l),T1T_1的第ii个字符和T2T_2的第ii个字符互补,则称它们是互补的。这里,AT互补,CG也互补。

请找出满足以下条件的非空连续子串TT的数量:

  • 存在一个字符串与TT的排列互补。

这里,即使内容相同,我们认为来自SS中不同位置的字符串是不同的。

约束条件

  • 1N50001 \leq N \leq 5000
  • SSATCG组成。

输入

从标准输入读入输入数据。输入格式如下:

NN SS

输出

输出满足条件的非空连续子串TT的数量。


示例输入1

4 AGCT

示例输出1

2

满足条件的两个子串如下:

  • GC(第2到第3个字符)是CG的补,而且GCCG的一个排列。
  • AGCT(第1到第4个字符)是TCGA的补,而且AGCTTCGA的一个排列。

示例输入2

4 ATAT

示例输出2

4

满足条件的四个子串如下:

  • AT(第1到第2个字符)是TA的补,而且ATTA的一个排列。
  • TA(第2到第3个字符)是AT的补,而且TAAT的一个排列。
  • AT(第3到第4个字符)是TA的补,而且ATTA的一个排列。
  • ATAT(第1到第4个字符)是TATA的补,而且ATATTATA的一个排列。

示例输入3

10 AAATACCGCG

示例输出3

6