HDU1015Safecracker

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1015

看代码就知道这道题有多水

代码:
#include <cstdio>
#include <algorithm>
#include <cstring>

using namespace std;

char s[20];
int target;
int a[20];

bool cmp(int a,int b)

{
    return a > b;
}

int main()

{
    while(~scanf("%d%s",&target,s))
    {
        if(target == 0 && strcmp(s,"END") == 0)
            break;
        int len = strlen(s);
        for(int i = 0;i < strlen(s);++i)
        {
            a[i] = s[i] - 'A' + 1;
        }
        sort(a,a + strlen(s),cmp);
        int flag = 0;
        for(int i = 0;i < len;++i)
        {
            if(flag) break;
            for(int j = 0;j < len;++j)
            {
                if(flag) break;
                for(int k = 0;k < len;++k)
                {
                    if(flag) break;
                    for(int g = 0;g < len;++g)
                    {
                        if(flag) break;
                        for(int l = 0;l < len;++l)
                        {
                            if(i!=j&&i!=k&&i!=g&&i!=l&&j!=k&&j!=g&&j!=l&&k!=g&&k!=l&&g!=l)
                            {
                                if(a[i]-a[j]*a[j]+a[k]*a[k]*a[k]-a[g]*a[g]*a[g]*a[g]+a[l]*a[l]*a[l]*a[l]*a[l] == target)
                                {
                                    printf("%c%c%c%c%c\n",a[i]+'A' - 1,a[j]+'A'-1,a[k]+'A'-1,a[g]+'A'-1,a[l]+'A'-1);
                                    flag = 1;
                                    break;
                                }
                            }
                        }
                    }
                }
            }
        }
        if(!flag)
            printf("no solution\n");
    }
    return 0;
}

你可能感兴趣的:(ACM)