luogu#P8863. 「KDOI-03」构造数组
「KDOI-03」构造数组
题目描述
你现在有一个长度为 的数组 。一开始,所有 均为 。给出一个同样长度为 的目标数组 。求有多少种方案,使得通过若干次以下操作,可以让 数组变成 。
- 选出两个不同的下标 ,并将 和 同时增加 。
两种方案被称之为不同的,当且仅当存在一个 使得一种方案中第 次操作选择的两个下标 与另一种方案中的不同。
答案对 取模。
输入格式
从标准输入读入数据。
输入数据一共包含两行。
第一行包含一个正整数 。
第二行包含 个正整数,表示 。
输出格式
输出到标准输出。
输出一行一个正整数,表示将 数组通过若干次操作变成 数组的方案数对 取模后的结果。
4
2 2 2 2
90
提示
【样例 1 解释】
种类编号 | 第一组 | 第二组 | 第三组 | 第四组 | 方案数 |
---|---|---|---|---|---|
1<->2 |
3<->4 |
||||
1<->3 |
2<->4 |
||||
1<->4 |
1<->4 |
2<->3 |
2<->3 |
||
1<->2 |
3<->4 |
||||
1<->3 |
2<->4 |
||||
1<->3 |
1<->4 |
2<->3 |
2<->4 |
总方案数是 。
【样例 2】
见选手文件中的 array/array2.in
与 array/array2.ans
。
此样例满足测试点 的限制。
【样例 3】
见选手文件中的 array/array3.in
与 array/array3.ans
。
此样例满足测试点 的限制。
【样例 4】
见选手文件中的 array/array4.in
与 array/array4.ans
。
此样例满足测试点 的限制。
【样例 5】
见选手文件中的 array/array5.in
与 array/array5.ans
。
此样例满足测试点 的限制。
【样例 6】
见选手文件中的 array/array6.in
与 array/array6.ans
。
此样例满足测试点 的限制。
【样例 7】
见选手文件中的 array/array7.in
与 array/array7.ans
。
此样例满足测试点 的限制。
【数据范围】
对于 的数据,,,。
测试点编号 | ||
---|---|---|