/* Problem 1705 众数问题 Accept: 316 Submit: 1110 Time Limit: 1000 mSec Memory Limit : 32768 KB Problem Description 给定含有n个元素的多重集合S,每个元素在S中出现的次数称为该元素的重数。多重集S中重数最大的元素称为众数。 例如,S={1,2,2,2,3,5}。 多重集S的众数是2,其重数为3。 现在给你一个已经排好序的集合S,让你求出其众数和重数。 Input 输入只有一行,有一个整数n(1<=n<=100)开始,表示集合S中元素个数,接下来有n个由一个空格隔开的整数(-100~100), 为集合S的元素,元素从小到大或者从大到小给出。 Output 输出一行二个整数X和Y,X表示众数和Y为重数,用一个空格隔开。如果存在多个解,只需输出值最小的众数即可。 Sample Input 6 1 2 2 2 3 5 3 -1 -1 -1 Sample Output 2 3 -1 3 Source 福州大学第六届程序设计竞赛 http://acm.fzu.edu.cn/problem.php?pid=1705 */ #include<stdio.h> int main() { int n,n0,n1,n2,t1,t2; while(scanf("%d",&n)!=EOF) { t1=1; t2=0; scanf("%d",&n0); while(--n) { scanf("%d",&n1); if(n1==n0) t1++; else { if (t1>t2) { t2=t1; n2=n0; } else if(t1==t2) n2=(n2<n0)?n2:n0; n0=n1; t1=1; } } if (t1>t2) { t2=t1; n2=n0; } else if(t1==t2) n2=(n2<n0)?n2:n0; if(t2==0) { n2=n0; t2=t1; } printf("%d %d/n",n2,t2); } return 0; } 好久没写程序了。。。。 后天,,,不应该说是明天,,,ACM比赛哈。。。 GOOD LUCK WITH ME!