Cod sursa(job #1121011)

Utilizator gapdanPopescu George gapdan Data 25 februarie 2014 11:05:41
Problema Elementul majoritar Scor 50
Compilator cpp Status done
Runda Arhiva educationala Marime 0.63 kb
#include<cstdio>
using namespace std;
int n,i,a[100001];
int main()
{
    freopen("elmaj.in","r",stdin);
    freopen("elmaj.out","w",stdout);
    scanf("%d",&n);
    for (i=1;i<=n;++i) scanf("%d",&a[i]);
    int k=0,cand=-1;
    for (i=1;i<=n;++i)
    {
        if (k==0)
        {
            cand=a[i];
            k=1;
        }
        else if (a[i]==cand) ++k;
            else --k;
    }
    if (cand<0) {printf("%d\n",cand);}
    int nr=0,i=0;
    for (i=1;i<=n;++i)
    {
        if (a[i]==cand) ++nr;
    }
    if (nr>n/2)
        printf("%d %d\n",cand,nr);
    else
        printf("-1\n");
    return 0;
}