atcoder#ARC104B. [ARC104B] DNA Sequence

[ARC104B] DNA Sequence

配点 : 400400

問題文

A, T, C, G から成る長さ NN の文字列 SS があります。

長さの等しい文字列 T1,T2T_1, T_2 が相補的とは、T1=l|T_1| = l としたとき、どの 1il1 \leq i \leq l についても T1,T2T_1, T_2ii 文字目の組み合わせが (AT), または (CG) の組み合わせのいずれかであることを指します。(例えば AT の組み合わせのとき、どちらの文字が T1T_1 に属してもよいです)

SS の連続する空でない部分文字列 TT であって、次の条件を満たすものの個数を求めてください。

  • TT と相補的であるような、TT の文字を並び替えた文字列が存在する。

ただし、文字列として同じであっても SS 内の位置が異なれば違う部分列とみなします。

制約

  • 1N50001 \leq N \leq 5000
  • SSA, T, C, G のみから成る

入力

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

NN SS

出力

SS の連続する空でない部分文字列 TT であって、条件を満たすものの個数を出力せよ。

4 AGCT
2

次の 22 つの部分文字列が条件を満たします。

  • GC (22 文字目から 33 文字目) は、これを並び替えた CG と相補的です。
  • AGCT (11 文字目から 44 文字目) は、これを並び替えた TCGA と相補的です。
4 ATAT
4

次の 44 つの部分文字列が条件を満たします。

  • AT (11 文字目から 22 文字目) は、これを並び替えた TA と相補的です。
  • TA (22 文字目から 33 文字目) は、これを並び替えた AT と相補的です。
  • AT (33 文字目から 44 文字目) は、これを並び替えた TA と相補的です。
  • ATAT (11 文字目から 44 文字目) は、これを並び替えた TATA と相補的です。
10 AAATACCGCG
6