Problem4549--选数(num.cpp)

4549: 选数(num.cpp)

[Creator : ]
Time Limit : 1.000 sec  Memory Limit : 256 MiB

Description

已知 $n$ 个整数 $x_1,\ x_2,\ …,\ x_n$,以及一个整数 $k\ (k<n)$。从 $n$ 个整数中任选 $k$ 个整数相加,可分别得到一系列的和。例如当 $n=4,\ k=3$,$4$ 个整数分别为 $3,\ 7,\ 12,\ 19$ 时,可得全部的组合与它们的和为:
$3+7+12=22$
$3+7+19=29$
$7+12+19=38$
$3+12+19=34$。
现在,要求你计算出和为素数共有多少种。
例如上例,只有一种的和为素数:$3+7+19=29$。

Input

共两行。
第一行,两个整数,$n,\ k\ (1 \leq n \leq 20,\ k<n)$
第二行,$n$ 个整数。$x_1,\ x_2,\ …,\ x_n\ (1 \leq x_i \leq 5,000,000)$

Output

一个整数(满足条件的种数)。

Sample 1 Input

4 3
3 7 12 19

Sample 1 Output

1

HINT

类似题目:洛谷 P1036

Source/Category

基础算法 4.110.DFS