「力扣挑战赛」 的入场仪式马上就要开始了,由于安保工作的需要,设置了可容纳人数总和为 M
的 N
个安检室,capacities[i]
记录第 i
个安检室可容纳人数。安检室拥有两种类型:
恰好 M+1
位入场的观众(编号从 0 开始)需要排队依次入场安检, 入场安检的规则如下:
0
的安检室i
的安检室时(0 <= i < N
),
i
的安检室时 (0 <= i < N-1
),将进入编号 i+1
的安检室接受安检。若可以任意设定每个安检室的类型,请问有多少种设定安检室类型的方案可以使得编号 k
的观众第一个通过最后一个安检室入场。
注意:
1000000007
取模后返回。示例 1:
输入:
capacities = [2,2,3], k = 2
输出:
2
解释: 存在两种设定的2
种方案:
- 方案 1:将编号为
0
、1
的实验室设置为 后进先出 的类型,编号为2
的实验室设置为 先进先出 的类型;- 方案 2:将编号为
0
、1
的实验室设置为 先进先出 的类型,编号为2
的实验室设置为 后进先出 的类型。以下是方案 1 的示意图:
示例 2:
输入:
capacities = [3,3], k = 3
输出:
0
示例 3:
输入:
capacities = [4,3,2,2], k = 6
输出:
2
提示:
1 <= capacities.length <= 200
1 <= capacities[i] <= 200
0 <= k <= sum(capacities)