公共問題の数
http://acm.sdut.edu.cn/onlinejudge2/index.php/Home/Contest/contestproblem/cid/3015/pid/1710.html
制限時間:2000ミリ秒メモリ制限:65536 KiBの
問題の説明
Sを含むn個の要素を設定するための複数のセットは、Sの各要素の出現数は、要素の多重と呼ばれています。複数のモードとして知られている重元素にSの最大数を設定します。例えば、S = {1,2,2,2,3,5}。複数のセットモードSが2であり、重量は3です。モードからなるn複数の自然数の所定のセットSおよび重量の数Sを算出します。複数のモードは、最小の出力を表示された場合。
入力
入力データ線1は、要素の数であるN(N <130万)多重集合S、次のn行、5桁の自然数の最大値を含む各行。
出力
アウトスタンディング数の最初の行の出力データは、行番号2は重量です。
サンプル入力
6 1 2 2 2 3 5
サンプル出力
2 3
ソリューション:
iは入力データを表す配列編曲[I]を、使用し、編曲[i]は、iの数が表示され表します。最初の入力のサイクル及びモードを特定し、Iを決定するための第2のサイクルは、最小を見つけます。
注意事項:
インデックス間の対応があるので、私とあなたはソートを呼び出す場合は、この時点で編曲[i]は、[i]はこの対応を破壊します。別の解決策は、編曲[Tの[I]、並べ替えを使用して()ソートT [I]を使用することです。
出典:
1の#include <iostreamの> 2の#include <アルゴリズム> 3 使用して 名前空間STDを、 4 int型 ARR [ 100005 ] = { 0 }。 5 6 BOOL CMP(int型 I、INT J){ 7 リターン I> J。 8 } 9 のint main()の 10 { 11 int型のカウント= 0 ; 12 INT MostElem = 0 。 13 のint NUM; 14 INTELEM; 15 16 STD CIN :: >> NUM; 17 18である 。19 // 第一の入力と計算 20である ため(int型 I = 0 ; IはNUMを<; Iは++ ){ 21は STD CIN :: >> ELEM; 22は、 ARR [ELEM] ++ ; 23で IF(ARR [Elemの]> 数){ 24 カウント= ARR [Elemの]; 25 } 26である } 27 28 // 直接呼び出しソートする場合は、[i]はiとARRとの対応関係を破壊します。 29 // スクラッチから再び直接再反復 30の int型温度= 100000 ; 31 のためには、(int型 i = 0 ; I < 100000 ; iは++ ){ 32 であれば(ARR [I] ==カウント&& iが< TEMP){ 33 TEMP = I。 34 } 35 } 36 37 // 直接输出 38 COUT << TEMP << ENDL << <<カウントENDLと、 39 40 41 戻り 0 ; 42 }