#include<iostream>
#include<cstdio>
#include<algorithm>
using namespace std;
int n;
int weight[21];
int sum;
void doPai(int a[],int &sum,int k,int leftwe){
if(leftwe == 0){
sum++;
return ;
}else{
if(k>=n||a[k]>leftwe) return;
else{
for(int i = k;i<n;i++)
doPai(a,sum,i+1,leftwe-a[i]);
}
}
}
int main(){
while(scanf("%d",&n)!=EOF){
sum = 0;
for(int i = 0;i<n;i++)
scanf("%d",&weight[i]);
sort(weight,weight+n);
doPai(weight,sum,0,40);
printf("%d\n",sum);
}
}
北大1114 神奇的口袋
最新推荐文章于 2019-08-01 10:46:15 发布