Cod sursa(job #1130845)

Utilizator Sirius2001Happy Birthday Sirius2001 Data 28 februarie 2014 16:00:39
Problema Elementul majoritar Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.72 kb
/*
    Keep It Simple!
*/

#include<stdio.h>

int n,k,v[1000005],cand,cnt;

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

    scanf("%d",&n);

    for(int i=1;i<=n;i++)
        scanf("%d",&v[i]);

    for(int i=1;i<=n;i++)
    {
        if(k == 0)
        {
            cand = v[i];
            k = 1;
        }
        if( v[i] == cand )
           k++;
        else
           k--;
    }

    if(cand<1)
      {
          printf("-1");
          return 0;
      }

    for(int i=1;i<=n;i++)
      if(v[i] == cand)
       cnt++;
    if(n/2 <= cnt)
    {
      printf("%d %d",cand,cnt);
      return 0;
    }
    printf("-1");
    return 0;

}