#P2331. Fuzzy Search

Fuzzy Search

题目描述

给出一个门限值 kk 和两个只包含 AGCT\texttt{AGCT} 四种字符的基因串 SSTT。现在你要找出在下列规则中 TTSS 中出现了几次。

TTSS 的第 ii 个位置中出现,当且仅当把 TT 的首字符和 SS 的第 ii 个字符对齐后,TT 中的每一个字符能够在 SS 中找到一个位置偏差不超过 kk 的相同字符。

即对于所有的 j[1,T]j \in[1,|T|],都存在一个 p[1,S]p \in [1,|S|] 使得 (i+j1)pk|(i+j-1)-p| \leq kSp=TjS_p=T_j

例如 k=1k=1 时,ACAT\texttt{ACAT} 出现在 AGCAATTCAT\texttt{AGCAATTCAT}22 号, 33 号和 66 号位置。 (编号从 11 开始。)

输入格式

第一行有三个整数 nn , mm , kk ,表示 SS 的长度, TT 的长度和"门限值"。

第二行给出基因串SS,第三行给出基因串TT,且两个串都只包含大写字母ATGC\texttt{ATGC}

1nm2105 , 0k21051≤n≤m≤2*10^5\ ,\ 0≤k≤2*10^5

输出格式

输出一个整数,表示 TTSS 中出现的次数。

10 4 1
AGCAATTCAT
ACAT
3