hdu 5038

来源:互联网 发布:邓丽君并没有网络传 编辑:程序博客网 时间:2024/05/01 23:02

用非常难看的姿势A过了。。。。心痛不已。。。。为什么手抖我肿么不资到。

#include <stdio.h>#include <math.h>#include <stdlib.h>#include <iostream>#include <algorithm>#include <string.h>using namespace std;#define maxn 1000010#define inf 1000010int vis[maxn];int a[maxn];int que[maxn];int cmp(int a,int b){    return a>b;}int main(){    int t;    int cas=0;    scanf("%d",&t);    while(t--)    {        int n;        int big=0;        int num=0;        scanf("%d",&n);        memset(vis,0,sizeof(vis));        int i,j,k;        for(i=0;i<n;i++)        {            scanf("%d",&j);            a[i]=abs(100-j);       //     printf("%d\n",a[i]);            vis[a[i]]++;           // printf("%d\n",vis[a[i]]);            big=max(big,a[i]);        }        int maxx=-1;        for(i=0;i<=big;i++)        {            if(vis[i]>maxx)            {                maxx=vis[i];          //      printf("maxx=%d\n",maxx);                num=1;                que[0]=i;                continue;            }            if(vis[i]==maxx)            {               // if(i==que[num-1]) continue;                que[num++]=i;            }        }        printf("Case #%d:\n",++cas);        if(num==1&&vis[que[0]]==n) {printf("%d\n",10000-que[0]*que[0]);continue;}        if(num>1)        {            j=0;            for(i=0;i<num;i++)                j+=vis[que[i]];            if(j==n) {printf("Bad Mushroom\n");continue;}        }        sort(que,que+num,cmp);        for(i=0;i<num-1;i++)            printf("%d ",10000-que[i]*que[i]);            printf("%d",10000-que[i]*que[i]);        printf("\n");    }    return 0;}


0 0