题库练习 New Year Garland
← 上一题 下一题 →

A8276 | New Year Garland

时间限制1s
内存限制256MB
通过 / 提交0/0

题目描述

As Gerald, Alexander, Sergey and Gennady are already busy with the usual New Year chores, Edward hastily decorates the New Year Tree. And any decent New Year Tree must be decorated with a good garland. Edward has lamps of $m$ colors and he wants to make a garland from them. That garland should represent a sequence whose length equals $L$ . Edward's tree is $n$ layers high and Edward plans to hang the garland so as to decorate the first layer with the first $l_{1}$ lamps, the second layer — with the next $l_{2}$ lamps and so on. The last $n$ -th layer should be decorated with the last $l_{n}$ lamps, ![](/uploads/acgo/image/18f329e340068c9e_e197ac50b5f7.jpeg)

Edward adores all sorts of math puzzles, so he suddenly wondered: how many different ways to assemble the garland are there given that the both following two conditions are met:

1. Any two lamps that follow consecutively in the same layer should have different colors.
2. The sets of used colors in every two neighbouring layers must be different. We consider unordered sets (not multisets), where every color occurs no more than once. So the number of lamps of particular color does not matter.

Help Edward find the answer to this nagging problem or else he won't manage to decorate the Tree by New Year. You may consider that Edward has an unlimited number of lamps of each of $m$ colors and it is not obligatory to use all $m$ colors. The garlands are considered different if they differ in at least one position when represented as sequences. Calculate the answer modulo $p$ .

输入格式

The first line contains three integers $n$ , $m$ and $p$ ( $1<=n,m<=10^{6}$ , $2<=p<=10^{9}$ ) which are the number of the tree's layers, the number of the lamps' colors and module correspondingly. The next line contains $n$ integers $l_{i}$ ( $1<=l_{i}<=5000$ , ![](/uploads/acgo/image/3248c11b74b98db7_f4d1d2684f4b.jpeg)).

输出格式

Print the only integer — the number of garlands modulo $p$ .

输入输出样例

输入 #1
3 2 1000
3 1 2
输出 #1
8
输入 #2
2 3 1000
2 2
输出 #2
24
输入 #3
1 1 1000
5
输出 #3
0
C++ 编辑器
输入
输出