USACO:Zero Sum

来源:互联网 发布:十大高薪职业知乎 编辑:程序博客网 时间:2024/06/10 00:59
/*ID: Jang LawrencePROG: zerosumLANG: C++*/#include<iostream>#include<cstring>#include<cstdio>#include<algorithm>#include<queue>#define mp make_pairusing namespace std;typedef long long lng;char d[]={" +-"};char opt[10];int n;void cal(){    int now=0,res=0;    int  f=1;    for(int i=1;i<=n;++i)    if(opt[i]==' ')    {        now=now*10+i;    }    else    if(opt[i]=='+')    {        now=now*10+i;        res+=f*now;        now=0;        f=1;    }    else    {        now=now*10+i;        res+=f*now;        now=0;        f=-1;    }  if(res==0)  {      for(int i=1;i<n;++i)      printf("%d%c",i,opt[i]);      printf("%d\n",n);  }}void dfs(int cnt){    if(cnt==n)    {        cal();        return ;    }    for(int i=0;i<3;++i)    {        opt[cnt]=d[i];        dfs(cnt+1);    }}int main(){  #ifndef  DEBUG  freopen("zerosum.in","r",stdin);  freopen("zerosum.out","w",stdout);  #endif  scanf("%d",&n);  opt[n]='+';  dfs(1);    return 0;}

原创粉丝点击