比赛 NOIP水题争霸赛 评测结果 RRRRRRRRRR
题目名称 博士的密码 最终得分 0
用户昵称 313 运行时间 0.047 s
代码语言 C++ 内存使用 0.13 MiB
提交时间 2018-02-11 21:43:00
显示代码纯文本
#include<cstdio>
#include<iostream>
#include<map> 
#define M 45 
#define ll long long 
using namespace std;
ll a[M],s1[M],s2[M],n,key,ans;
map<ll,int> hash;
void dfs(int x,int sum,int flag)
{
    if(!flag&&x>n/2)
    {hash[sum]++;return;}
    if(flag&&x>n)
    {ans+=hash[key-sum];return;}
    dfs(x+1,sum+a[x],flag);
    dfs(x+1,sum,flag);
}
int main()
{
   freopen("password1.in","r",stdin);
   freopen("password1.out","w",stdout);
    cin>>n>>key;
    for(int i=1;i<=n;i++)scanf("%lld",&a[i]);
    dfs(1,0,0);dfs(n/2+1,0,1);
    cout<<ans;
    return 0;
}