#8235. SOS字符串(sos)

0
    ID: 8235 传统题 文件IO:sos 1000ms 256MiB 尝试: 0 已通过: 0 难度: (无) 上传者: 标签>CSP-S模拟暑期集训2024暑期CSP-S连测第8套CSP1109

SOS字符串(sos)

题目描述

当危机四伏,人们常常通过密信来传递求救信息。

在很多很多年以后,历史学家小 Z 翻阅古籍发现了一些模糊的密信,这些密信其中一些文字已经难以辨认,但在可以辨认的文字中,小 Z 发现了他记忆中的符号 "SOS",这是国际通用的求救信号。小Z 深 知这个信号的重要性,他想知道原始的密信上有多少种可能会出现三次及以上 "SOS" 的组合方式。

小 Z 知道,这些密信可能隐藏着无数种解读方式,但他只关心那些包含三次及以上 "SOS" 的组合(注意 "SOSOS" 只能算出现一次)。

他希望通过计算这些组合的数量,来更深入地了解这些密信背后的故事和含义,这样的合法的密信可能有很多,小 Z 只想知道这些合法组合对 1e9+7 取模的结果即可。

输入格式

从 sos.in 文件读入数据。

第一行输入的是整数 nn 表示一封密信的长度,请注意密信只可能包含大写的英文字母 。

输出格式

输出到 sos.out 文件。

一个数字,表示有多少种字符串可能出现了三个及以上SOS。

样例

10
104
174
122889315
17711
665739088
308235
701079308

说明/提示

样例 1 解释

解释:SOSSOSSOS* 2626 种,*SOSSOSSOS 2626 种,SOSSOS*SOS 2626 种,SOS*SOSSOS 2626 种,其中 * 表示通配符,表示该位置可以放任意 A −- Z 的大写字母。

数据范围

对于 20%20\% 的数据,n≤12n \le 12

对于 40%40\%,n≤200n \le 200

对于 60%60\%,n≤105n\le 10^5

对于 100%100\%,n≤106n \le 10^6