首页 > 试题广场 >

平衡的选择题

[编程题]平衡的选择题
  • 热度指数:316 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解
牛牛准备出一套卷子,这个卷子有n个多项选择题,每个选择题有A、B、C、D四个选项。
多项选择题的答案有15种:(A,B,C,D,AB,AC,AD,BC,BD,CD,ABC,ACD,ABD,BCD,ABCD)

牛牛对于试卷答案之间的平衡有奇妙的要求:他希望按顺序做下来,做完每一题的时候,目前正确答案中A出现的次数和C出现的次数差距不超过1,B出现的次数和D出现的次数差距不超过2.

举个例子:有两个选择题,那么第一题答案为AC,第二题答案为A,这是满足要求的,因为做完第一题的时候A出现了1次C出现了1次,做完第二题的时候A出现了2次,C出现了1次。

如果第一题答案是AD,第二题答案是A,那么做完第一题的时候A出现了1次,D出现了1次,符合要求。做完第二题的时候A出现了2次,C出现了0次,D出现了1次,A和C差距为2,则不符合要求。

现在牛牛想知道,如果有n个多项选择题,那么一共有多少种试卷答案是符合牛牛的要求的。

为了防止答案过大,答案对1e9+7取模
示例1

输入

1

输出

15

说明

只有1道题,15种选项都符合牛牛的要求。

备注:

这道题你会答吗?花几分钟告诉大家答案吧!