Cod sursa(job #650905)

Utilizator mihaipopa12Popa Mihai mihaipopa12 Data 19 decembrie 2011 08:57:20
Problema Elementul majoritar Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.67 kb
#include<fstream>

#define maxn 1000005

using namespace std;

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

int n,i,k,elmaj,nrap,ap;
int v[maxn];

int main () {
	
	f >> n;
	
	for ( i = 1 ; i <= n ; ++i ){
		f >> v[i];
	}
	
	for ( i = 1 ; i <= n ; ++i ){
		if ( k == 0 ){
			elmaj = v[i]; k = 1;
		}
		else{
			if ( v[i] == elmaj ){
				++k;
			}
			else{
				--k;
			}
		}
	}
	
	if ( !k ){
		g << "-1\n";
	}
	else{
		for ( i = 1 ; i <= n ; ++i ){
			if ( v[i] == elmaj ){
				++ap;
			}
		}
		if ( ap < (n>>1)+1 )
			g << "-1\n";
		else{
			g << elmaj << " " << ap << "\n";
		}
	}
	
	f.close();
	g.close();
	
	return 0;
}