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。

## 样例解释 2
如下图所示,答案为 4。

## 样例解释 3
无论如何放球,都无法满足条件。
由 ChatGPT 4.1 翻译