#549. 【提高】基因组分析

【提高】基因组分析

说明

乌龟得到了他的基因组,一个只包含“ATCG”四种字母的字符串。乌龟想起科学家说,基因组中很多片段都多次重复出现,而且这种重复是很有意义的,于是他想计算一下自己基因组里片段的重复情况。

给定一个基因组,其中一个长度为k的子串称为一个“kk-片段”。乌龟希望你计算出基因组中不同的kk-片段数量。例如,基因组“TACAC”的2-片段有“TA” ,“AC”,“CA”,“AC”,其中不同的片段数量有3个。

输入格式

整数nkR1n,k,R_1,表示基因组的长度,片段的长度和数列生成的首项。基因组第ii(1 in)个字符在RiR_i mod 4的值为0,1,2,3时分别为A, T,C,G

试题中使用的生成数列RR定义如下:整数0R1<2017010≤R_1<201701在输入中给出。对于i>1Ri=Ri1×6807+2831i> 1,R_i =(R_{i-1}×6807 + 2831)mod 201701。

输出格式

一个整数,表示不同的kk-片段的数量

样例

20 2 37
10

数据规模

30%的数据满足n10n≤10

100%的数据满足1n20,1k101≤n≤20,1≤k≤10

来源

2017江苏省青少年信息学奥林匹克小学组竞赛复赛