出现次数


Time Limit: 1000MS Memory limit: 65536K


题目描述


      对于给定一个整数序列,你的任务是确定这个序列中出现次数最多的整数和它出现的次数。


输入


N(0 < N <= 1000),接下来一行为 N 个以空格分隔的整数 Ai,|Ai| < 2^31。


输出


A、B,分别代表出现次数最多的那个数和出现次数,如果出现次数最多的有多个,输出数值最小的那个。


示例输入


4 1 2 3 3 5 1 2 3 4 5


示例输出


3 2 1 1



1. #include<stdio.h>  
2. int main()  
3. {  
4. int n, i, j, max, c, x;  
5. long long a[1000];  
6. while(scanf("%d", &n)!=EOF)  
7.     {  
8.         max = -1;  
9.         c = 0;  
10. for(i = 0; i < n; i++)  
11.     {  
12. "%d", &a[i]);  
13.     }  
14. for(i = 0; i < n; i++)  
15.     {  
16.         x = 0;  
17. for(j = i + 1; j < n; j++)  
18.         {  
19. if(a[i] == a[j])  
20.                 x++;  
21.         }  
22. if(max < x)  
23.         {  
24.             max = x;  
25.             c = i;  
26.         }  
27. else if(max == x)  
28.         {  
29. if(a[c] > a[i])  
30.             {  
31.                 c = i;  
32.             }  
33.         }  
34. else max = max;  
35.     }  
36. "%lld %d\n", a[c], max+1);  
37.     }  
38. return 0;  
39. }