Cod sursa(job #1639301)

Utilizator gapdanPopescu George gapdan Data 8 martie 2016 11:43:40
Problema Elementul majoritar Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.56 kb
#include <cstdio>
#define NMAX 1000005

using namespace std;

int v[NMAX];
int n,k,el,i,nr,x;

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