用非常难看的姿势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 1000010
int 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;
}