题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5038
3 6 100 100 100 99 98 101 6 100 100 100 99 99 101 6 100 100 98 99 99 97
Case #1: 10000 Case #2: Bad Mushroom Case #3: 9999 10000
代码如下:
#include <cstdio>
#include <cstring>
#include <iostream>
#include <algorithm>
using namespace std;
int main()
{
int t;
int n, w, a[10017];
int cas = 0;
scanf("%d",&t);
while(t--)
{
scanf("%d",&n);
printf("Case #%d:\n",++cas);
memset(a,0,sizeof(a));
for(int i = 0; i < n; i++)
{
scanf("%d",&w);
int tt = 10000-(100-w)*(100-w);
a[tt]++;
}
int maxx = 0;
for(int i = 0; i <= 10000; i++)
{
if(a[i] > maxx)
maxx = a[i];
}
int flag = 1;
int k = 0;
for(int i = 0; i <= 10000; i++)
{
if(a[i] != maxx && a[i]>0)
{
flag = 0;
}
if(a[i] == maxx)
k++;
}
if(flag && k > 1)//还有自身
{
printf("Bad Mushroom\n");
continue;
}
flag = 0;
for(int i = 0; i <= 10000; i++)
{
if(a[i] == maxx)
{
if(flag)
printf(" %d",i);
else
{
printf("%d",i);
flag = 1;
}
}
}
printf("\n");
}
return 0;
}
原文地址:http://blog.csdn.net/u012860063/article/details/39503943