hdu 1015 Safecracker
//忘了是什么题= =
#include<iostream> #include<stdio.h> #include<cstring> #include<algorithm> using namespace std; bool cmp(int a,int b) { return a>b; } int main(void) { int n,i,j,k,l,m,len,flag,c[20]; char ch[20]; while(scanf("%d%s",&n,ch)!=EOF) { if(n==0&&strcmp(ch,"END")==0) break; flag=1; len=strlen(ch); for(i=0;i<len;i++) c[i]=ch[i]-64; sort(c,c+len,cmp); for(i=0;i<len&&flag;i++) for(j=0;j<len&&flag;j++) { if(i==j) continue; for(k=0;k<len&&flag;k++) { if(i==k||j==k) continue; for(l=0;l<len&&flag;l++) { if(i==l||j==l||k==l) continue; for(m=0;m<len&&flag;m++) { if(i==m||j==m||k==m||l==m) continue; if((c[i]-c[j]*c[j]+c[k]*c[k]*c[k]-c[l]*c[l]*c[l]*c[l]+c[m]*c[m]*c[m]*c[m]*c[m])==n) { printf("%c%c%c%c%c\n",c[i]+64,c[j]+64,c[k]+64,c[l]+64,c[m]+64); flag=0; break; } } } } } if(flag) cout<<"no solution\n"; } return 0; }