#abc0034. [abc003_4]AtCoder社の冬
[abc003_4]AtCoder社の冬
问题文
AtCoder公司的办公室被划分为 ( 行 列)个区块,每个区块中要么有员工的办公桌,要么有服务器机架,或者是空闲的空间。
由于AtCoder公司所在地区的冬天很冷,为了尽量节省暖气费用,决定只使用办公室中必要的空间。
然而,由于材料限制,必须按照与区块平行的长方形将其划分。
因此,我们:
- 在最上面一行的办公桌或服务器机架的上方,
- 在最下面一行的办公桌或服务器机架的下方,
- 在最左边一列的办公桌或服务器机架的左侧,
- 在最右边一列的办公桌或服务器机架的右侧,
四条边围住的区块之间用墙围起来。
这样,被墙围起来的区域变成了 ( 行 列)的区块。
此外,AtCoder公司的办公室中有 个办公桌和 个服务器机架。
请编写一个程序,计算原先办公室中办公桌和服务器机架的所有可能放置方式,然后将结果除以 取余数。
输入
输入通过标准输入给出,格式如下:
- 第 行包含一个整数 ,表示AtCoder公司办公室的区块行数和列数。
- 第 行包含两个整数 ,表示被墙围起来的区域的行数和列数。
- 第 行包含两个整数 ,表示办公室中办公桌的数量和服务器机架的数量。
输出
请输出原先办公室中办公桌和服务器机架的所有可能放置方式的数量除以 的余数,以一行输出。
输出末尾要换行。
部分分
如果能够正确处理 的测试用例,可以得到 分中的 分。 满分解法非常困难,因此我们可以从确保能获得部分分开始思考。
输入例子 1
3 2
2 2
2 2
输出例子 1
12
- 这个测试用例满足 ,可能是部分分的测试用例之一。
- 以下是可能的 种放置方式。这里
D
表示办公桌,L
表示服务器机架,.
表示没有放置。
DD DL DL LD LD LL .. .. .. .. .. ..
LL DL LD DL LD DD DD DL DL LD LD LL
.. .. .. .. .. .. LL DL LD DL LD DD
输入例子 2
4 5
3 1
3 0
输出例子 2
10
- 这个测试用例满足 ,可能是部分分的测试用例之一。
输入例子 3
23 18
15 13
100 95
输出例子 3
364527243
- 这个测试用例满足 ,可能是部分分的测试用例之一。
- 办公室中的放置方式有 $145180660592914517790287604376765671109248284280228061640640$ 种,将其除以 取余数得到 。
输入例子 4
30 30
24 22
145 132
输出例子 4
976668549
- 这个测试用例不满足 ,不包含在部分分的测试用例之中。
- 请只有把握的人尝试挑战,不要勉强获得正确答案。