您的位置:首页 > Web前端

暴力 ZOJ 1403 Safecracker

2015-07-09 08:12 495 查看
题目传送门

 /*
暴力:纯暴力,在家水水
*/
#include <cstdio>
#include <cstring>
#include <algorithm>
#include <iostream>
#include <string>
#include <vector>
#include <cmath>
using namespace std;

const int MAXN = 1e3 + 10;
const int INF = 0x3f3f3f3f;
char s[15];
int v[15];
int len, tar;

bool cmp(int x, int y)    {return x > y;}

void work(void)
{
for (int i=0; i<len; ++i)
{
for (int j=0; j<len; ++j)
{
if (i != j)
{
for (int k=0; k<len; ++k)
{
if (k != i && k != j)
{
for (int l=0; l<len; ++l)
{
if (l != i && l != j && l != k)
{
for (int m=0; m<len; ++m)
{
if (m != i && m != j && m != k && m != l)
{
if (v[i] - pow (v[j], 2) + pow (v[k], 3) - pow (v[l], 4) + pow (v[m], 5) == tar)
{
printf ("%c%c%c%c%c\n", v[i] + 'A' - 1, v[j] + 'A' - 1, v[k] + 'A' - 1, v[l] + 'A' - 1, v[m] + 'A' - 1);
return ;
}
}
}
}
}
}
}
}
}
}

printf ("no solution\n");
}

int main(void)        //ZOJ 1403 Safecracker
{
//    freopen ("ZOJ_1403.in", "r", stdin);

while (scanf ("%d%s", &tar, &s) == 2)
{
if (tar == 0 && strcmp (s, "END") == 0)    break;
len = strlen (s);
for (int i=0; i<len; ++i)    v[i] = s[i] - 'A' + 1;
sort (v, v+len, cmp);

work ();
}

return 0;
}

/*
v - w^2 + x^3 - y^4 + z^5 = target
*/
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: