#P2466. 肥胖基因

肥胖基因

题目描述

人类的基因序列是一个由字母 ACGT 组成的字符串,肥胖基因是其中的一个子串(子串为原串中一段连续的字符),基因手术过程是这样的:先找出所有的肥胖基因,并将它们用基因墨水染成红色,然后将某些字符加上基因锁,一把基因锁只能锁住一个字符,一个肥胖基因只要有一个字符加上了基因锁,则这个肥胖基因就不再起作用,现在要你计算有多少个字符被基因墨水染成了红色?最少需要多少把基因锁才能将所有的肥胖基因锁住?

输入格式

第一行包含两个用空格隔开的正整数 L1L2L_1,L_2,表示小 X 基因的长度和肥胖基因的长度。

第二行为一个长度为 L1L_1 的字符串 s1s_1,表示小 X 的基因。

第三行为一个长度为 L2L_2 的字符串 s2s_2,表示肥胖基因。数据保证 L1>L2L_1>L_2

输出格式

输出一行包含两个整数,表示被基因墨水染成了红色的字符个数和所需的基因锁数量,两数之间严格用一个空格隔开。

样例

16 3
CGCGCATCGCATTAGG
CGC
8 2

红色字符为被基因墨水染成红色的全部 33 个肥胖基因,总共有 88 个字符;只需 22 把基因锁就可以把所有的肥胖基因 CGC 锁住。分别锁住第 33 个字符 C 和第 99 个字符 G 即可。注意第一个和第二个肥胖基因有重叠,给第三个字符 C 加上锁就同时将两个肥胖基因锁住了。

数据范围

  • 对于 100%100\% 的数据,1L11061 \le L_1 \le 10^61L2101 \le L_2 \le 10,保证字符只会出现 A,C,G,T