Cod sursa(job #1846607)

Utilizator SpiristulTeribilStefan Vilcu SpiristulTeribil Data 13 ianuarie 2017 17:10:16
Problema Elementul majoritar Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.61 kb
#include <fstream>
#include <vector>

using namespace std ;

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

const int MAX = 1e6 + 14 ;

int v [MAX] ;

int main ( ) 
{
	int n ;
	cin >> n ; 
	int elem = 0 ;
	int ap = 0 ; 
	for ( int i = 1 ; i <= n ; ++ i ) {
		cin >> v [i] ;
		if ( ap <= 1 and elem != v [i] ) {
			elem = v [i] ; 
			ap = 0 ;
		}
		else if ( elem == v [i] ) {
			ap += 1 ; 
		}
		else {
			ap -= 1 ;
		}
	}
	ap = 0 ; 
	for ( int i = 1 ; i <= n ; ++ i ) {
		if ( v [i] == elem ) {
			ap += 1 ; 
		}
	}
	if ( ap >= n / 2 + 1 ) {
		cout << elem << ' ' << ap ;
	}
	else {
		cout << -1 ;
	}
	return 0 ;
}