您的位置:首页 > 其它

奋战杭电ACM(DAY10)1015

2013-09-02 01:26 316 查看
不见AC不睡觉!


暴力,不解释居然过了……


晚安~水水的~



Safecracker

#include <iostream>
#include <string>
#include <algorithm>
#include <cmath>
using namespace std;

bool cp(int a, int b)
{
return a>b;
}

int main()
{
long target,n;
int t[30];
string s;
while(cin >> target >> s)
{
n=0;
bool suc=false;
memset(t,0,sizeof(t));
if(target==0 && s=="END") break;
for(int i=0; s[i]!='\0'; i++)
t[i]=s[i]-64;
sort(t,t+30,cp);
for(int v=0; t[v]!=0; v++)
{
for(int w=0; t[w]!=0; w++)
{
if(v==w) continue;
for(int x=0; t[x]!=0; x++)
{
if(x==v) continue;
for(int y=0; t[y]!=0; y++)
{
if(y==x) continue;
for(int z=0; t[z]!=0; z++)
{
if(z==y) continue;
n=t[v] - pow(t[w],2) + pow(t[x],3) - pow(t[y],4) + pow(t[z],5);
if(n==target)
{
printf("%c%c%c%c%c\n",t[v]+64,t[w]+64,t[x]+64,t[y]+64,t[z]+64);
suc=true;
break;
}
}
if(suc==true) break;
}
if(suc==true) break;
}
if(suc==true) break;
}
if(suc==true) break;
}
if(suc==false)
cout << "no solution" << endl;
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: