#include <bits/stdc++.h> using namespace std; int a[20],b[20],n,c; char f[20]; string s="+-*"; void pd(){ for(int i=1;i<=n;i++){ b[i]=a[i]; } for(int i=1;i<=n-1;i++){ if(f[i]=='*'){ b[i+1]=b[i+1]*b[i]; if(f[i-1]=='-') b[i+1]=b[i+1]*-1; b[i]=0; } } int s=b[1]; for(int i=2;i<=n;i++){ if(f[i-1]=='+'||f[i-1]=='*') s=s+b[i]; else if(f[i-1]=='-') s=s-b[i]; } if(s==24){ c++; } } void dfs(int k){ for(int i=0;i<s.size();i++){ f[k]=s[i]; if(k==n-1){ pd(); }else{ dfs(k+1); } } } int main(){ cin>>n; for(int i=1;i<=n;i++){ cin>>a[i]; } dfs(1); cout<<c; return 0; } /************************************************************** Problem: 1956 User: wangchenyu Language: C++ Result: Accepted Time:66 ms Memory:2072 kb ****************************************************************/