AT_abc003_4 [ABC003D] AtCoder社の冬

题目描述

AtCoder 社的员工室被划分为 $R \times C$($R$ 行 $C$ 列)的格子,每个格子中可能有员工的桌子、服务器机架,或者什么都没有的空格。 由于 AtCoder 所在地区的冬天很冷,为了尽量节省取暖费用,公司决定只使用员工室中必要的空间。 但由于材料的限制,必须用与格子平行的矩形区域来划分空间。 因此, - 在有桌子或服务器机架的最上面一行的正上方, - 在有桌子或服务器机架的最下面一行的正下方, - 在有桌子或服务器机架的最左边一列的正左方, - 在有桌子或服务器机架的最右边一列的正右方, 用墙围成一个矩形区域。 这样,被墙围住的区域就是 $X \times Y$($X$ 行 $Y$ 列)的格子。 另外,AtCoder 社的员工室里有 $D$ 个桌子和 $L$ 个服务器机架。 请编写程序,计算员工室中桌子和服务器机架的所有可能的摆放方案数,并对 $1000000007 = 10^9+7$ 取模。 输入按以下格式从标准输入给出。 1. 第 $1$ 行给出员工室的行数和列数 $R,\ C\ (1 \leq R,\ C \leq 30)$,用空格分隔。 2. 第 $2$ 行给出被墙围住的区域的行数和列数 $X,\ Y\ (1 \leq X \leq R,\ 1 \leq Y \leq C)$,用空格分隔。 3. 第 $3$ 行给出员工室中桌子的数量和服务器机架的数量 $D,\ L\ (D,\ L \geq 0,\ 1 \leq D+L \leq X \times Y)$,用空格分隔。 请输出员工室中桌子和服务器机架的所有可能的摆放方案数,对 $1000000007 = 10^9+7$ 取模,并在输出末尾加上换行符。 如果 $D+L = X \times Y$ 的测试用例全部正确,可以获得 $101$ 分中的 $100$ 分。 满分解法非常困难,建议先考虑确保拿到部分分。

输入格式

第 $1$ 行:两个整数 $R\ C$,表示员工室的行数和列数。 第 $2$ 行:两个整数 $X\ Y$,表示被墙围住的区域的行数和列数。 第 $3$ 行:两个整数 $D\ L$,表示桌子的数量和服务器机架的数量。

输出格式

输出一个整数,表示所有可能的摆放方案数,对 $1000000007$ 取模,并以换行结束。

说明/提示

- $D+L = X \times Y$ 的情况属于部分分测试用例。 - 满分解法较难,建议先确保部分分。 - $1 \leq R, C \leq 30$ - $1 \leq X \leq R$ - $1 \leq Y \leq C$ - $D, L \geq 0$ - $1 \leq D+L \leq X \times Y$ 由 ChatGPT 4.1 翻译