水题。。注意读题。。
时间:15毫秒
#include "stdio.h"
#include "stdlib.h"
#include "string.h"
int cmp(const void *a,const void *b){
return(*(int *)b-*(int *)a);
}
int power(int a,int b){
int i,mul=1;
for(i=1;i<=b;i++)mul*=a;
return mul;
}
int main(){
int code[20];
char st[20];
int n,i,j,k,l,m,length,temp,flag;
while(1){
for(i=0;i<=19;i++)code[i]=0;
scanf("%d %s",&n,&st);
if(!n)break;
length=strlen(st);
//printf("%d\n",length);
for(i=0;i<=length-1;i++)code[i+1]=st[i]-64;
qsort(code,sizeof(code)/sizeof(int),sizeof(int),cmp);
//for(i=0;i<=length-1;i++)printf("%c",code[i]+64);
flag=0;
for(i=0;i<=length-1;i++){
for(j=0;j<=length-1;j++){
if((i==j))continue;
for(k=0;k<=length-1;k++){
if((i==k)||(j==k))continue;
for(l=0;l<=length-1;l++){
if((i==l)||(j==l)||(k==l))continue;
for(m=0;m<=length-1;m++){
if((i==m)||(j==m)||(k==m)||(l==m))continue;
//printf("%d %d %d %d %d\n",i,j,k,l,m);
temp=code[i]-power(code[j],2)+power(code[k],3)-power(code[l],4)+power(code[m],5);
if(temp==n){
printf("%c%c%c%c%c\n",code[i]+64,code[j]+64,code[k]+64,code[l]+64,code[m]+64);
flag=1;
break;
}
}
if(flag)break;
}
if(flag)break;
}
if(flag)break;
}
if(flag)break;
}
if(!flag)printf("no solution\n");
}
return 0;
}