抽象的dfs
#include <iostream>
/*
从n个数中选k个数和为sum
*/
using namespace std;
int n,k,sum,ans;
int a[40];
void dfs(int i,int cnt,int s)
{
if(i==n)
{
if(cnt==k&&s==sum)
{
ans++;
}
return;
}
dfs(i+1,cnt,s);//不选
dfs(i+1,cnt+1,s+a[i]);//选
}
int main()
{
cin>>n>>k>>sum;
for(int i=0;i<n;i++)
{
cin>>a[i];
}
ans=0;
dfs(0,0,0);
cout<<ans;
return 0;
}