Grada
泰德是一个员工总是煮蘑菇(ACM)。他的老板给了他一包马特蘑菇问他年级每个蘑菇根据其重量。假设一个蘑菇的重量W,那么它的等级是
S = 10000(100 W)^ 2
更重要的是,泰德也有报道这些蘑菇的等级模式。该模式是最经常出现的价值。模式可能不唯一。如果不是所有的价值都是一样的但它们的频率是一样的,没有模式。
输入
输入的第一行包含一个整数T,表示测试用例的数目。然后T测试用例跟踪。
每个测试用例的第一行包含一个整数N(1≤N≤10 ^ 6),表示数量的蘑菇。
第二行包含N个整数,表示每个蘑菇的重量。重量大于0,小于200。
输出
对于每一个测试案例,输出线2条。
第一行包含“案例# x”,其中x是数字(从1开始)
第二行包含给定的蘑菇等级模式。如果存在多个模式,以升序输出。如果没有模式,输出“坏蘑菇”。
#include <stdio.h> #include <math.h> #include <algorithm> int main() { int n,w,i,m,d,t,max,c,sign,k,a[110]; while(scanf("%d",&n)!=EOF) { t=0; while(n--) { memset(a,0,sizeof(a)); scanf("%d",&m); t++; max=-1; c=0; sign=0; k=m; while(m--) { scanf("%d",&w); a[abs(100-w)]++; } for(i=0;i<=100;i++) { if(a[i]>max) max=a[i]; } for(i=0;i<=101;i++) { if(a[i]==max) c++; } printf("Case #%d:\n",t); if(max*c==k&&c!=1) printf("Bad Mushroom"); else { for(i=100;i>=0;i--) { if(a[i]==max) { if(sign==0) { printf("%d", 10000-i*i); sign=1; } else printf(" %d",10000-i*i); } } } printf("\n"); } } return 0; }