乱搞做法
#include<bits/stdc++.h>
using namespace std;
int n,m;
int arr[25];
bool pack[2010];
int ans=0;
void dfs(int p,int num,int sum){
if(n-num<m)
return;
if(p>n)
return;
pack[sum]=1;
dfs(p+1,num,sum);
dfs(p+1,num+1,sum+arr[p]);
}
int main(){
scanf("%d%d",&n,&m);
for(int i=1;i<=n;i++)
scanf("%d",&arr[i]);
dfs(1,0,0);
for(int i=1;i<=2005;i++){
if(pack[i]){
ans++;
}
}
printf("%d\n",ans);
return 0;
}