1 ABCDEFGHIJKL 11700519 ZAYEXIWOVU 3072997 SOUGHT 1234567 THEQUICKFROG 0 END
LKEBA YOXUZ GHOST no solution#include<cstdio> #include<cstring> #include<cmath> #include<cstdlib> #include<iostream> #include<algorithm> using namespace std; const int maxn=20; int target,flag,len; char s1[maxn]; char str[maxn]; int mark[maxn]; bool cmp(char a,char b) { return a>b; } int judge(char a,char b,char c,char d,char e) { int p,q,r,s,t; p=a-'A'+1; q=b-'A'+1; r=c-'A'+1; s=d-'A'+1; t=e-'A'+1; if(p-q*q+r*r*r-s*s*s*s+t*t*t*t*t==target) return 1; return 0; } void DFS(int depth) { if(flag) return; if(depth==5) { if(judge(str[0],str[1],str[2],str[3],str[4])) { for(int i=0;i<5;i++) { printf("%c",str[i]); } flag=1; } return; } for(int i=0;i<len;i++) { if(!mark[i]) { mark[i]=1; str[depth]=s1[i]; DFS(depth+1); mark[i]=0; } } } int main() { while(~scanf("%d %s",&target,s1)) { if(target==0 && strcmp(s1,"END")==0) return 0; len=strlen(s1); sort(s1,s1+len,cmp); memset(mark,0,sizeof(mark)); flag=0; DFS(0); if(!flag) printf("no solution"); printf("\n"); } return 0; }
原文:http://blog.csdn.net/holyang_1013197377/article/details/44810257