#21068. 阶乘鸽

内存限制:128 MiB 时间限制:1000 ms 标准输入输出
题目类型:传统 评测方式:文本比较
上传者: renjiaxin

题目描述

你抓到了 n 只阶乘鸽。在第 i 只阶乘鸽上有一个数 a_i 你作为掌管阶乘鸽的咕咕神,给了你 k 次机会(不一定要用完),每次操作针对一个阶乘鸽,把它上面的数变成它的阶乘( a_i -> a_i! )。你需要 求出存在多少种方案数,使得存在几只阶乘鸽上的数和为 s

输入格式

第一行,三个数, n, k, s , (1<=n<=25, 1<=k<=18, 1<=s<= 10^{18} )

第二行, n个数, a_i , (1<= a_i <= 10^9 )

输出格式

唯一一行,输出方案数

样例

2 2 30
4 3

1

3 1 1
1 1 1

6

数据范围与提示

第一个样例: 你拥有数4,3,唯一的方案是:将两个数都进行阶乘得 4!+3! = 30

第二个样例: 拥有数1,1,1. 对于每个1,有2种方案,阶乘或者不阶乘。 共计6种

数据范围:

. || n || a_i || s || 备注

1 || <=5 || <= 10^3 || <= 10^9

2 || <=5 || <= 10^9 || <= 10^9 || a_i =s

3 || <=15 || <= 10^5 || <= 10^9

4 || <=25 || <= 10^5 || <= 10^9

5 || <=25 || <= 10^5 || <= 10^{18}

6 || <=25 || <= 10^9 || <= 10^{18}

7 || <=25 || <= 10^9 || <= 10^{18}

8 || <=25 || <= 10^9 || <= 10^{18}

9 || <=25 || <= 10^9 || <= 10^{18}

10 || <=25 || <= 10^9 || <= 10^{18}

建议用:

#include<unordered_map>

unordered_map<> ;