Cod sursa(job #856599)

Utilizator vlad.doruIon Vlad-Doru vlad.doru Data 16 ianuarie 2013 19:34:26
Problema Elementul majoritar Scor 90
Compilator cpp Status done
Runda Arhiva educationala Marime 0.65 kb
#include <fstream>
#include <map>
#include <set>
#include <cstdlib>

using namespace std;

ifstream in("elmaj.in");
ofstream out("elmaj.out");

int n;
int v[1000100];

int main(){
	in>>n;
	map<int,int> hash;
	for(int i=1;i<=n;++i){
		in>>v[i];
	}
	for(int i=1;i<=1000;++i){
		int poz=rand()%n + 1;
		hash[v[poz]]++;
	}
	map<int,int>::iterator it;
	int elmaj;
	int ap=0;
	for(it=hash.begin();it!=hash.end();++it){
		if(it->second>ap){
			elmaj=it->first;
			ap=it->second;
		}
	}
	ap=0;
	for(int i=1;i<=n;++i){
		if(v[i]==elmaj){
			ap++;
		}
	}
	if(ap>=n/2){
		out<<elmaj<<" "<<ap;
		return 0;
	}
	out<<"-1";
	return 0;
}