Cod sursa(job #1721143)

Utilizator Mihai7Gheoace Mihai Mihai7 Data 24 iunie 2016 16:32:19
Problema Elementul majoritar Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.88 kb
#include<cstdio>
#include<map>
#include<cstdlib>
using namespace std;
FILE *f=freopen("elmaj.in","r",stdin),
*g=freopen("elmaj.out","w",stdout);
char buff[4096];
int pos=4096;
inline char nextch()
{
	if(pos==4096)
	{
		fread(buff,1,4096,stdin);pos=0;
	}
	return buff[pos++];
}
inline int nextNr()
{
	char c=nextch();
	while(c<'0'||c>'9')
		c=nextch();
	int nr=0;
	while(c>='0'&&c<='9')
	{
		nr=nr*10+c-'0';
		c=nextch();
	}
	return nr;
}
int main()
{
	map< int , int > aparitii;
	map< int , int >::iterator it;
	int i,n,raw;
	scanf("%d",&n);
	for(i=0;i<n;++i)
	{
		raw=nextNr();
		it=aparitii.find(raw);
		if(it!=aparitii.end())
			++(it->second);
			else aparitii.insert(make_pair(raw,1));
	}
	it=aparitii.begin();
	while(it!=aparitii.end())
	{
		if(it->second>n/2)
			{printf("%d %d",it->first,it->second);exit(0);}
		++it;
	}
	printf("-1");
}