签到题
当输入达到n>=10^6,输入优化是很明显的。
注意当方案数 只有一种时,直接输出该方案!这里WA了三次。
#include <cstdio>
#include <cstring>
#include <map>
#include <queue>
#include <algorithm>
#define M 100004
using namespace std;
#define CLS(x,v) memset(x,v,sizeof(x))
#define filew freopen("d:\\in.out","w",stdout);
int vis[102];
int input()
{
int x=0;
char c=getchar();
while(c<'0'||c>'9')c=getchar();
while(c>='0'&&c<='9')
{
x=x*10+(c-'0');
c=getchar();
}
return x;
}
int main()
{
int T,x,maxn,n,cnt;
scanf("%d",&T);
for(int k=1; k<=T; k++)
{
CLS(vis,0);
maxn=0;
cnt=0;
scanf("%d",&n);
for(int i=0; i<n; i++)
{
x=input();
if (x>100)x=(200-x);
vis[x]++;
maxn=max(vis[x],maxn);
}
int flag=0;
for(int i=0; i<=100; i++)
if(vis[i]>0)
{
if(vis[i]==maxn)
{
vis[i]=1;
cnt++;
}
else
{flag=1;vis[i]=0;}
}
printf("Case #%d:\n",k);
if(flag==0&&cnt>1)
{
printf("Bad Mushroom\n");
}
else{
int second=0;
for(int i=0;i<=100;i++)
if(vis[i])
{
if(second)printf(" ");
printf("%d",10000-(100-i)*(100-i));
second=1;
}
printf("\n");
}
}
return 0;
}