Cod sursa(job #2127838)

Utilizator raducostacheRadu Costache raducostache Data 11 februarie 2018 09:34:57
Problema Elementul majoritar Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.56 kb
#include <cstdio>

using namespace std;
int n,i,nr,x[3000001],c;
int main()
{
    freopen("elmaj.in","r",stdin);
    freopen("elmaj.out","w",stdout);
    scanf("%d",&n);
    for(i=1;i<=n;++i)
        scanf("%d",&x[i]);
    
    c=x[1];
    nr=1;
    
    for(i=2;i<=n;++i)
    {
        if(nr==0) {c=x[i]; nr=1;}
        else if(x[i]==c) ++nr;
        else nr--;
    }
    
    if(nr==0) printf("-1");
    else
    {
        nr=0;
        for(i=1;i<=n;++i)if(x[i]==c) nr++;
        
        if(nr>=n/2+1) printf("%d %d",c,nr);
        else printf("-1");
    }
    return 0;
}