83882 - 樱花,还有你
时间限制 : 1 秒
内存限制 : 128 MB
从左到右有k颗樱花树,其中第i棵樱花树有s_i,每棵树可以任意采摘不超过s_i朵樱花。你需要按照樱花树的顺序恰好采摘n朵樱花。
当你采到了n朵樱花后,可以继续移动到下一颗树,也可以立刻结束采摘,都会被视为不同的采摘方案。
求有多少种不同的采摘方案。
输入
第一行两个正整数 n,k,表示要收集 n 朵樱花,而前方还有 k 棵樱花树。
接下来一行 k 个正整数 s_1,s_2,...,s_k,其中 s_i 表示最多在第 i 棵樱花树下收集到 s_i 朵樱花。
输出
一行一个整数,表示恰好收集到 n 朵樱花的方案数。
由于答案可能太大,请输出答案对 10086001 取模后的值。
特殊地,如果收集不到 n 朵樱花,请输出一个字符串 impossible。
样例
输入
3 4 1 1 1 1
输出
5
输入
10 9 9 6 8 7 9 6 5 4 3
输出
68345
输入
10 5 2 2 2 2 1
输出
impossible
提示
样例解释 #1
我们以下列方式表示一种方案:$(a_1,a2,\cdots,a{len}),其中 \sum_{i=1}^{len} a_i =n,len 表示在第 len 棵樱花树下收集完樱花后就交差了,a_i 表示在第 i 棵树下收集了 a_i$ 朵樱花。
那么有下列 5 种方案:(1,1,1),(1,1,1,0),(0,1,1,1),(1,0,1,1),(1,1,0,1)。
样例解释 #3
最多能收集到 9 朵樱花,所以不能收集到 10 朵樱花,输出 impossible。
对于 100\% 的数据,1 \leq n,k \leq 5\times 10^3,0 \leq s_i \leq n。
来源
luogu