题解 P1164 【小A点菜】

· · 题解

include <bits/stdc++.h>

pragma GCC optimize(2)

using namespace std;

int sum = 0, a[105], n, m;

void read()
{
cin >> n >> m;
for (int i = 1;i <= n;i++) cin >> a[i];
}

void dfs(int dep, int money)
{
if (dep > n)
{
if (m - money == 0)
sum++;
}
else
{
dfs(dep + 1, money);
if (money + a[dep] <= m)
dfs(dep + 1, money + a[dep]);
}
}

int main()
{
//freopen(".in","r",stdin);
//freopen(".out","w",stdout);
read();
dfs(1, 0);
cout << sum << endl;
return 0;
}