[SCOI2008]着色方案
题号:NC20265
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

有n个木块排成一行,从左到右依次编号为1~n。
你有k种颜色的油漆,其中第i种颜色的油漆足够涂ci个木块。 所有油漆刚好足够涂满所有木块,即c1+c2+...+ck=n。
相邻两个木块涂相同色显得很难看,所以你希望统计任意两个相邻木块颜色不同的着色方案。

输入描述:

第一行为一个正整数k,第二行包含k个整数c1, c2, ... , ck

输出描述:

输出一个整数,即方案总数模1,000,000,007的结果。
示例1

输入

复制
3
1 2 3

输出

复制
10

备注:

对于50%的数据,
对于100%的数据,