#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<algorithm>
using namespace std;
bool cmp(char a,char b)
{
return a>b;
}
bool isok(int a,int b,int c,int d,int e,int target)
{
if((a-b*b+c*c*c-d*d*d*d+e*e*e*e*e)==target)
return true;
else
return false;
}
int charNum(char ch)
{
return ch-'A'+1;
}
int main()
{
int target;
int a,b,c,d,e;
char str[100005];
while(scanf("%d %s",&target,str),target||strcmp(str,"END"))
{
int flag=0;
int len=strlen(str);
sort(str,str+len,cmp);
int ta,tb,tc,td,te;
for(a=0;a<len;a++)
{ for(b=0;b<len;b++)
{ if(a!=b)
for(c=0;c<len;c++)
{ if(a!=c&&b!=c)
for(d=0;d<len;d++)
{ if(a!=d&&b!=d&&c!=d)
for(e=0;e<len;e++)
{
ta=charNum(str[a]);
tb=charNum(str[b]);
tc=charNum(str[c]);
td=charNum(str[d]);
te=charNum(str[e]);
if(isok(ta,tb,tc,td,te,target))
{printf("%c%c%c%c%c\n",str[a],str[b],str[c],str[d],str[e]);
flag=1;
break;}
}
if(flag)break;
}
if(flag)break;
}
if(flag)break;}
if(flag)break;}
if(flag==0)printf("no solution\n");
}
return 0;
}
hdu1015 Safecracker 水题 枚举,题目有的多 这也算搜索?
最新推荐文章于 2022-02-25 19:38:17 发布