#ZF1186. mjq
mjq
Description
在奇幻宝库中,你有 颗普通宝石和 枚神奇水晶。 所有普通宝石互不相同,所有神奇水晶也互不相同。
你可以选择将神奇水晶合成为高级水晶。合成规则如下:
1.你可以选择任意数量的不相交集合,每个集合恰好包含 枚神奇水晶,然后将每个集合合成一枚高级水晶。合成后,每个集合产生一枚高级水晶,且这些高级水晶互不相同(因为它们由不同的神奇水晶集合合成),例如使用神奇水晶编号集合为 生成的两个高级水晶和 生成的两个水晶是不同的。
2.你也可以选择不合成任何高级水晶。
3.合成过程是瞬间完成的,合成顺序不影响结果。每个神奇水晶最多被用于合成一次(即合成集合是不相交的)。
合成后,你拥有三类物品:普通宝石、剩余的神奇水晶(未被合成的)和合成的高级水晶。所有物品都是互不相同的。
然后,你将所有物品排成一列,并依次取走,\textbf{直到取完}。但规定在取走过程中,不能连续取走水晶(即神奇水晶或高级水晶)。也就是说,在取走序列中,任何两个水晶之间必须至少有一颗普通宝石。
请问有多少种不同的取走顺序?答案对 取模。
两个取走顺序被认为不同当且仅当取的水晶和宝石集合不同,或者在某一步操作中取的两个物品不同。
Format
Input
一行包含三个整数 , , ,其中,分别表示普通宝石的个数,神奇水晶的个数,多少颗神奇水晶能合成高级水晶。
Output
输出一行表示不同的取走顺序的数量,并对 取模。
Samples
4 4 2
12960
Limitation
1s, 1024KiB for each test case.