1 solutions
-
0
C++ :
#include <iostream> #include <iomanip> #include <algorithm> #include <string> #include <cstring> #include <cstdio> #include <cstdlib> #include <cmath> #include <ctime> using namespace std; int N,sz[10],cunc[10000][10],coun=0; char zf[5]={'0',' ','+','-','\0'}; void caoz() { int i,j,sum=0,lins=1,fuh=1; for (i=1;i<N;i++) { if (sz[i]==1) lins=lins*10+i+1; else if (sz[i]==2) { if (fuh==1) sum+=lins; else sum-=lins; fuh=1; lins=i+1; } else if (sz[i]==3) { if (fuh==1) sum+=lins; else sum-=lins; fuh=0; lins=i+1; } } if (fuh==1) sum+=lins; else sum-=lins; if (sum==0) { for (i=1;i<=N;i++) cunc[coun][i]=sz[i]; coun++; } } void dfs(int x) { if (x==N) caoz(); else for (int i=1;i<=3;i++) { sz[x]=i; dfs(x+1); } } int main() { int i,j; scanf("%d",&N); dfs(1); for (i=0;i<coun;i++) { for (j=1;j<N;j++) printf("%d%c",j,zf[cunc[i][j]]); printf("%d\n",N); } return 0; }
- 1
Information
- ID
- 19000
- Time
- 1000ms
- Memory
- 128MiB
- Difficulty
- (None)
- Tags
- # Submissions
- 0
- Accepted
- 0
- Uploaded By