AT_wupc2019_j Color Ball

题目描述

有 $N$ 个颜色各不相同的筒,每个筒中装有与筒颜色相同的 $a_1, a_2, \dots, a_N$ 个球。所有筒中的球加起来共有 $M$ 个。 每个筒的宽度恰好能放下一个球。保证没有空筒。 绫子想到了如下的玩法:她要将筒中的球取出并重新放入,要求满足以下条件: - 每个筒中球的数量与初始状态相同。 - 每个筒中球的颜色都与该筒的颜色不同。 请问有多少种满足条件的放球方式?请输出答案对 $10^9+7$ 取模后的结果。 注意,同色球之间不区分,但要区分每个筒中球的排列顺序。

输入格式

输入从标准输入读入,格式如下: ``` N M a_1 a_2 \dots a_N ```

输出格式

请输出满足条件的方案数,输出一行。

说明/提示

## 限制条件 - $1 \leq N \leq 2000$ - $1 \leq M \leq 2000$ - $1 \leq a_i \leq M$ - $\sum a_i = M$ - 所有输入均为整数。 ## 样例解释 1 只有如下图所示的两球互换的方式满足条件,因此答案为 1。 ![](https://img.atcoder.jp/wupc2019/j_sample1_98ba0shj8amur03y.png) ## 样例解释 2 如下图所示,答案为 4。 ![](https://img.atcoder.jp/wupc2019/j_sample2_mhbk98uaz6yz1525.png) ## 样例解释 3 无论如何放球,都无法满足条件。 由 ChatGPT 4.1 翻译