Online Judge | Problem Set | Authors | Online Contests | User | ||||||
---|---|---|---|---|---|---|---|---|---|---|
Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest |
Re:为什么这样还不过呢In Reply To:Re:哦,原来如此,谢谢。我回来再看看 Posted by:t4 at 2004-08-13 17:38:50 #include <stdio.h> int v[5],a[6]; bool dfs(int k,int m) { if(k==4) { if(m==a[4]) return 1; else return 0; } for(int i=0;i<4;i++) if(v[i]==0) { v[i] = 1; if(dfs(k+1,m*a[i])) return 1; if(dfs(k+1,m+a[i])) return 1; if(dfs(k+1,m-a[i])) return 1; if(a[i]!=0) { if(dfs(k+1,m/a[i])) return 1; } /////////////////// if(m!=0) { if(dfs(k+1,a[i]/m)) return 1; } ////////////////// v[i] = 0; } return 0; } bool done() { for(int i=0;i<4;i++) { v[i] = 1; if(dfs(1,a[i])) return 1; } return 0; } void main() { int i; while(1) { scanf("%d",&a[0]); if(a[0]<0) break; v[0] = 0; for(i=1;i<5;i++) { scanf("%d",&a[i]); v[i] = 0; } for(i=0;i<5;i++) printf("%d ",a[i]); if(done()) printf("OK!\n"); else printf("NO!\n"); } } Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator