Cod sursa(job #658943)

Utilizator andunhillMacarescu Sebastian andunhill Data 9 ianuarie 2012 20:24:02
Problema Elementul majoritar Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.54 kb
//Complexitate: O(N)

#include<fstream>
using namespace std;

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

int N;
long long v[1000001];

int main()
{	int i, j, elem, nr_ap;
	
	f>>N;
	for(i = 1; i <= N; i++)
		f>>v[i];
	
	j = 1; elem = v[1];
	
	for(i = 2; i <= N; i++)
		if(j == 0)
			j = 1, elem = v[i];
		else if(v[i] == elem)
			j++;
		else j--;
	nr_ap = 0;
	for(i = 1; i <= N; i++)
		if(v[i] == elem) nr_ap++;
	
	if(nr_ap < N / 2 + 1) g<<-1;
	else g<<elem<<" "<<nr_ap;
	
	f.close();
	g.close();
	return 0;
}