Cod sursa(job #1167655)

Utilizator nicolaetitus12Nicolae Titus nicolaetitus12 Data 5 aprilie 2014 17:22:27
Problema Elementul majoritar Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.58 kb
#include <fstream>
#include <iostream>
#define N 1000001
int a[N];
int main()
{
	int n;	
	std::ifstream fin("elmaj.in");
	std::ofstream fout("elmaj.out");
	fin>>n;
	for(int i=0;i<n;i++)
	{
		fin>>a[i];
	}
	int current = -1;
	int count = 0;
	for(int i=0;i<n;i++)
	{
		if(count==0)
		{
			current = a[i];
			count++;
		}
		else
		{
			if(current!=a[i])		
				count--;
			else
				count++;
		}
	}	

	if(count==0)
	{
		fout<<-1;
		return 0;
	}
	count=0;

	for(int i=0;i<n;i++)
	{
		if(a[i]==current)
			count++;	
	}		
	if(count>=n/2+1)
		fout<<current<<" "<<count;
	else
		fout<<current; 

	return 0;
}