天天看點

FZU 1582 衆數問題

衆數問題

Time Limit:1s Memory limit:32M
Accepted Submit:366 Total Submit:1515

給定含有n個元素的多重集合S,每個元素在S中出現的次數稱為該元素的重數。多重集S中重數最大的元素稱為衆數。

例如,S={1,2,2,2,3,5}。

多重集S的衆數是2,其重數為3。

資料輸入

輸入包括多組資料,請處理到EOF結束。

每組資料,以一個n(1<=n<=100,000)開始,接下n行,每行有一個數字(-231~231)。

資料輸出

對于每組輸入資料,輸出一行一個數字,表示衆數。如果存在多個解,隻需輸出值最小的衆數即可。

樣例輸入

6
1
2
2
2
3
5
3
-1
-1
-1
      

樣例輸出

2
-1
      
Original: FOJ月賽-2008年4月
#include <iostream> #include <map> using namespace std; int main() { int n,m,max=0; map <int,int> number; map <int,int>::iterator iter; while(cin>>n) { for (int i=0;i<n;i++) { cin>>m; iter=number.find(m); if (iter==number.end()) { number.insert(map <int,int>::value_type(m,1)); } else iter->second++; } for (iter=number.begin();iter!=number.end();iter++) { if (iter->second>max) { max=iter->second; m=iter->first; } } cout<<m<<endl; number.clear(); max=0; } return 0; }           
上一篇: 5090 衆數