HDOJ1015 Safecracker

水题。。注意读题。。

时间: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;
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值