Cod sursa(job #1561019)

Utilizator TiberiuGCopaciu Tiberiu George TiberiuG Data 3 ianuarie 2016 16:24:11
Problema Elementul majoritar Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.58 kb
# include <cstdio>
# define N 1000010

using namespace std;

int n,nr,numar_aparitii,candidat;
int a[N];


int main()
{
    freopen("elmaj.in", "r", stdin);
    freopen("elmaj.out", "w", stdout);

    scanf("%d\n", &n);

    for(int i=1; i<=n; ++i)
    {
        scanf("%d ", &a[i]);
        if(nr==0) {candidat=a[i], nr++;}
        else if(candidat==a[i]) nr++;
        else nr--;
    }

    for(int i=1; i<=n; ++i)
        if(a[i]==candidat) numar_aparitii++;
    if(numar_aparitii>=n/2+1) printf("%d %d\n", candidat, numar_aparitii);
    else printf("-1\n");
}