题目链接:http://acm.split.hdu.edu.cn/showproblem.php?pid=5038
给出N个0-200之间的数,以100为轴每个书对应一个函数值,如果所有的函数值出现的频率都相等而自变量不相等输出Bad Mushroom,否则输出频率最高的函数值,若有多个升序输出。
#include<iostream>
#include<cstdio>
#include<cstring>
#include<cmath>
#include<algorithm>
using namespace std;
typedef long long int LL;
const int maxn=1000005;
int n;
int vis[maxn];
int main()
{
int T,i,j,num=1;
scanf("%d",&T);
while(T--)
{
memset(vis,0,sizeof(vis));
scanf("%d",&n);
int x,s=0;
int maxx=-1;
for(i=0;i<n;i++)
{
scanf("%d",&x);
int xx=10000-(100-x)*(100-x);
if(vis[xx]==0)
{
s++;
}
vis[xx]++;
if(vis[xx]>maxx)
{
maxx=vis[xx];
}
}
//printf("%d %d\n",maxx,s);
printf("Case #%d:\n",num++);
if(maxx*s==n&&s!=1)
{
printf("Bad Mushroom\n");
}
else
{
int f=0;
for(i=0;i<=10000;i++)
{
if(vis[i]==maxx)
{
if(f==0)
{
printf("%d",i);
f=1;
}
else
{
printf(" %d",i);
}
}
}
printf("\n");
}
}
return 0;
}