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;}