#define MAX_N 1005
int data[MAX_N];
int n, k;
// 从前i项得到的和sum
bool DFS(int i, int sum)
{
    // n项都计算过了，判断是否等于k
    if (i == n)
        return sum == k;
    // 不加上第i项
    if (DFS(i + 1, sum))
        return true;
    // 加上第i项
    if (DFS(i + 1, sum + data[i]))
        return true;

    return false;
}