首页 > 代码库 > (HDU)1029 --Ignatius和公主IV(Ignatius和公主IV)

(HDU)1029 --Ignatius和公主IV(Ignatius和公主IV)

问题描述
“好吧,你不是很坏,但是你永远不能通过下一个测试。 feng5166说。

“我会告诉你一个奇数N,然后是N个整数,其中有一个特殊的整数,你必须告诉我在告诉你所有的整数后,哪个整数是特殊的整数。 feng5166说。

“但是特殊整数的特征是什么? Ignatius问。

“整数会出现至少(N + 1)/ 2次,如果你找不到正确的整数,我会杀死公主,你也会是我的晚餐,哈哈哈哈 .....”feng5166说。

你能找到Ignatius的特殊整数吗?


输入
输入包含几个测试用例。每个测试用例包含两行。第一行由奇整数N(1 <= N <= 999999)组成,表示feng5166将告诉我们的英雄的整数个数。

第二行包含N个整数。输入由文件结尾终止。


输出
对于每个测试用例,您只需输出一行,其中包含您找到的特殊数字。


样品输入
5
1 3 2 3 3
11
1 1 1 1 1 5 5 5 5 5
7
1 1 1 1 1 1 1


示例输出
3
5
1

 

技术分享
 1 #include <iostream>
 2 #include <cstdio>
 3 #include <cstring>
 4 
 5 using namespace std;
 6 
 7 int main()
 8 {
 9     int a[500000],n,i,temp,ans;
10     while(~scanf("%d",&n))
11     {
12         memset(a,0,sizeof(a));
13         for(i=1;i<=n;i++)
14         {
15             scanf("%d",&temp);
16             a[temp]++;
17             if (a[temp]>(n+1)/2)
18                 ans=temp;
19         }
20         printf("%d\n",ans);
21     }
22     return 0;
23 }
代码

 

(HDU)1029 --Ignatius和公主IV(Ignatius和公主IV)