andre_joy

导航

hdu 1015

地址:http://acm.hdu.edu.cn/showproblem.php?pid=1015

题意:找符合题目给定公式字典序最后的字符串。

mark:暴力过……

代码:

#include <stdio.h>
#include <string.h>
#include <stdlib.h>

int n,c[15];
char a[15], b[30] = "1ABCDEFGHIJKLMNOPQRSTUVWXYZ";

int cmp(const void *a, const void *b)
{
    return *(int *)b - *(int *)a;
}

void find()
{
    int i,j,k,p,q,l;
    l = strlen(a);
    for(i = 0; i < l; i++)
        c[i] = a[i]-'A'+1;
    qsort(c, l, 4, cmp);
    for(i = 0; i < l; i++)
        for(j = 0; j < l; j++)
        {
            if(j == i) continue;
            for(k = 0; k < l; k++)
            {
                if(k == i || k == j) continue;
                for(p = 0; p < l; p++)
                {
                    if(p == i || p == j || p == k) continue;
                    for(q = 0; q < l; q++)
                    {
                        if(q == i || q == j || q == k || q == p) continue;
                        if(c[i] - c[j]*c[j] + c[k]*c[k]*c[k] - c[p]*c[p]*c[p]*c[p] + c[q]*c[q]*c[q]*c[q]*c[q] == n)
                        {
                            printf("%c%c%c%c%c\n", b[c[i]], b[c[j]], b[c[k]], b[c[p]], b[c[q]]);
                            return ;
                        }
                    }
                }
            }
        }
    puts("no solution");
}

int main()
{
    while(~scanf("%d%s", &n, a))
    {
        if(!n && !strcmp(a, "END")) break;
        find();
    }
    return 0;
}

posted on 2012-07-18 10:43  andre_joy  阅读(352)  评论(0编辑  收藏  举报