#include <iostream> #include<vector> using namespace std; vector<int>v; int res=0; void traceback(int k,int n,int sum){//k从0开始 if(sum==40){res++;return;} else if(sum>40){return ;} else if(k==n) return ; traceback(k+1,n,sum+v[k]); traceback(k+1,n,sum); } int main() { //利用 类似回溯算法 //每个分支对应选 不选 int n; while(cin>>n){ v.clear();res=0;int t=n; while(n-->0){ int t;cin>>t; v.push_back(t); } traceback(0,t,0); cout<<res; } } // 64 位输出请用 printf("%lld")