hdu1029

Ignatius and the Princess IV

Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 2048/1024 K (Java/Others)
Total Submission(s): 3672    Accepted Submission(s): 1100

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
 
   
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
明显是卡内存,以后要养成先看限制条件的习惯,又是放在排序类里面完全是在误导人,内存1M不可能容纳近百万的数组,这个信息要
敏感,题目没有给出数值的范围,比较郁闷,考试时候也没有必要顾虑太多,别无选择(出现错误时不要轻易怀疑算法是错误的,认真判断)
这里没说数组越界说明数组够大了
#include
#include
#define max 100000
using namespace std;
int num[max];
int main()
{
 freopen("in.txt","r",stdin);
 int n;
 while(cin>>n)
 {
  memset(num,0,sizeof(num));
  int m=(n+1)/2;
  int a,answer;
  for(int i=0;i  {
   cin>>a;num[a]++;
   if(num[a]>=m)//不能拒绝输入
   answer=a;
  }
  cout< }
 return 0;
}

你可能感兴趣的:(integer,input,output,each,kill,算法)