题目描述
约翰和布鲁斯已经成了全世界的名人,在玻利维亚尤其出名。
玻利维亚有个人打算写一篇关于他们的故事。为了让故事更真实,他安排了一场对约翰的采访。他准备了一份互不相同的简单“是/否”问题清单,并请两位朋友帮忙记录采访内容。每次他提出一个问题时,一位朋友记录问题,另一位朋友记录答案。
他采访时非常紧张,可能重复问了某些问题。但对于同一个问题,约翰的答案始终保持一致。
遗憾的是,负责记录问题的朋友弄丢了问题清单。为了尽力回忆提问的顺序,这位玻利维亚人打算列出所有可能的提问方式。他确定:清单上的每一个问题都至少被问过一次。
给定整数 questions(问题清单中的问题总数)和字符串数组 answers(answers 的第 i 个元素是他第 i 次提问得到的答案)。请返回可能的提问顺序总数。
输入格式
整数 questionsanswers 的长度
字符串数组 answers(每个元素为 Yes 或 No)
输出格式
整数,对 (10^9 + 7) 取模
样例1输入
2
2
No
Yes
样例1输出
2
解释:两种可能:先问第一个问题再问第二个,或者反过来。
样例2输入
2
3
No
No
No
样例2输出
6
样例3输入
3
4
Yes
No
No
Yes
样例3输出
12
样例4输入
3
4
Yes
Yes
Yes
No
样例4输出
18
数据范围
- 有 40% 的数据,
answers的长度和questions长度不超过 6 - 有 60% 的数据,
answers的长度和questions长度不超过 10 - 另有 20% 的数据,
answers中的每个元素都是"Yes" - 100% 的数据,
answers的长度和questions长度不超过 200,answers中每个元素只能是Yes或No
