C语言排序(13)___众数问题(Hdu 1029)
2015-03-18 22:04
344 查看
Problem Description
"OK, you are not too bad, em... But you can never pass the next test." feng5166 says.
"I will tell you an odd number N, and then N integers. There will be a special integer among them, you have to tell me which integer is the special one after I tell you all the integers." feng5166 says.
"But what is the characteristic of the special integer?" Ignatius asks.
"The integer will appear at least (N+1)/2 times. If you can't find the right integer, I will kill the Princess, and you will be my dinner, too. Hahahaha....." feng5166 says.
Can you find the special integer for Ignatius?
Input
The input contains several test cases. Each test case contains two lines. The first line consists of an odd integer N(1<=N<=999999) which indicate the number of the integers feng5166 will tell our hero. The second line contains
the N integers. The input is terminated by the end of file.
Output
For each test case, you have to output only one line which contains the special number you have found.
Sample Input
Sample Output
题意:输入一排数,这排数满足有一个数至少出现了n/2+1次.然后输出这个数.
map的应用.
"OK, you are not too bad, em... But you can never pass the next test." feng5166 says.
"I will tell you an odd number N, and then N integers. There will be a special integer among them, you have to tell me which integer is the special one after I tell you all the integers." feng5166 says.
"But what is the characteristic of the special integer?" Ignatius asks.
"The integer will appear at least (N+1)/2 times. If you can't find the right integer, I will kill the Princess, and you will be my dinner, too. Hahahaha....." feng5166 says.
Can you find the special integer for Ignatius?
Input
The input contains several test cases. Each test case contains two lines. The first line consists of an odd integer N(1<=N<=999999) which indicate the number of the integers feng5166 will tell our hero. The second line contains
the N integers. The input is terminated by the end of file.
Output
For each test case, you have to output only one line which contains the special number you have found.
Sample Input
5 1 3 2 3 3 11 1 1 1 1 1 5 5 5 5 5 5 7 1 1 1 1 1 1 1
Sample Output
3 5 1
题意:输入一排数,这排数满足有一个数至少出现了n/2+1次.然后输出这个数.
map的应用.
#include<iostream> #include<map> using namespace std; int main(void) { int ans,n,b; while(cin>>n) { map<int,int>a; for(int i=0;i<n;i++) { cin>>b;//用cin就超时了,超1000ms(换成scanf就375ms,,,天哪,差别有这么大么?) a[b]++; if(a[b]==(n+1)/2) { ans=b; } } cout<<ans<<endl; } return 0; }
相关文章推荐
- [C语言]排序问题
- HDU-1316 How Many Fibs? 大数、二分问题 (C语言)
- hdu 1894 字典序问题,先排序,在剪枝
- C语言及程序设计进阶例程-25 排序问题及其求解
- c语言排序问题
- C语言测试:想成为嵌入式程序员应知道的13+3个基本问题
- HDU_3466_Proud Merchants详细解答(01背包(排序问题))
- C语言排序问题
- 山东理工大学ACM平台题答案关于C语言 1196 排序问题
- hdu 1029 Ignatius and the Princess IV(排序)
- 关于把二元查找树转变成排序的双向链表(树)的C语言设计程序执行后出现段错误的问题
- HDU1029时钟(排序)
- HDU_2047——EOF字符串排序排列问题,递推
- C语言 - 选择排序中的--异或交换--问题分析
- hdu 3789 奥运排序问题 模拟
- hdu 3789 奥运排序问题
- 双链表排序问题(C语言)
- HDU 1029 Ignatius and the Princess IV 【求众数】
- C语言排序(12)___Can you find it?(Hdu 2141)
- HDU 1862 EXCEL次序 (排序水问题)