HDU 5038 水

来源:互联网 发布:艺考生软件缺点 编辑:程序博客网 时间:2024/05/16 02:52

用给出的公式求出每个蘑菇的grade,求出现次数最多的grade。如果有多个grade出现的次数一样多,且还有其他的grade,则把这些出现次数最多的grade按升序输出;否则,输出“Bad Mushroom”。注意当方案数只有一种的时候直接输出这个方案。

程序乱搞。。。 用很难看的姿势A掉了。。。


#include "stdio.h"#include "string.h"int main(){    int Case,ii,n,x,key,ans,ans2,first,i; // key记录答案数是否唯一,ans2记录次小值    int hash[10010];    scanf("%d",&Case);    for (ii=1;ii<=Case;ii++)    {        scanf("%d",&n);        memset(hash,0,sizeof(hash));        while (n--)        {            scanf("%d",&x);            hash[10000-(100-x)*(100-x)]++;        }        printf("Case #%d:\n",ii);        key=0;        ans=0;        ans2=0;        for (i=0;i<=10000;i++)        if (hash[i]>ans)        {            key=1;            ans2=ans;            ans=hash[i];        }        else        if (ans==hash[i] && hash[i]!=0)            key++;        else        if (hash[i]<ans && hash[i]!=0)            ans2=hash[i];        if (key>1 && ans2==0)        {            printf("Bad Mushroom\n");            continue;        }        first=1;        for (i=0;i<=10000;i++)            if(hash[i]==ans)        {            if (first==0) printf(" ");            first=0;            printf("%d",i);        }        printf("\n");    }    return 0;}


1 0
原创粉丝点击