Cod sursa(job #1197227)

Utilizator DenisacheDenis Ehorovici Denisache Data 11 iunie 2014 12:18:58
Problema Elementul majoritar Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.72 kb
#include <cstdio>
using namespace std;
int N,v[1000005],k,cand,poz;
char buff[10000];
int read()
{
	int nr=0;
	while (buff[poz]<'0' || buff[poz]>'9')
		if (++poz==10000) fread(buff,1,10000,stdin),poz=0;
	while ('0'<=buff[poz] && buff[poz]<='9')
	{
		nr=nr*10+buff[poz]-48;
		if (++poz==10000) fread(buff,1,10000,stdin),poz=0;
	}
	return nr;
}
int main()
{
    freopen("elmaj.in","r",stdin);
    freopen("elmaj.out","w",stdout);
    scanf("%d",&N); int nrap=0;
    for (register int i=1;i<=N;i++)
    {
    	v[i]=read();
    	if (k==0) cand=v[i],++k;
    	else if (v[i]==cand) ++k;
    	else --k;
    }
    for (register int i=1;i<=N;i++) if (cand==v[i]) ++nrap;
    printf("%d %d",cand,nrap);
    return 0;
}