Cod sursa(job #1692424)

Utilizator demetriad-dagpagDavid Demetriad demetriad-dagpag Data 20 aprilie 2016 20:26:57
Problema Elementul majoritar Scor 100
Compilator c Status done
Runda Arhiva educationala Marime 0.88 kb
#include <stdio.h>
#include <stdlib.h>
int v[1000001];
int citire()
{
    char c;
    int nr=0;
    c=getchar();
    while(c>='0' && c<='9')
    {
        nr=nr*10+c-'0';
        c=getchar();
    }
    return nr;
}
int main()
{
    int n,i,elmaj,ap;
    freopen("elmaj.in","r",stdin);
    freopen("elmaj.out","w",stdout);
    scanf("%d",&n);
    getchar();
    for(i=1; i<=n; i++)
        v[i]=citire();
    elmaj=v[1];
    ap=1;
    for(i=2; i<=n; i++)
        if(v[i]==elmaj)
            ap++;
        else
        {
            if(ap==0)
            {
                elmaj=v[i];
                ap=1;
            }
            else
                ap--;
        }
    ap=0;
    for(i=1; i<=n; i++)
        if(v[i]==elmaj)
            ap++;
    if(ap>=n/2+1)
        printf("%d %d\n",elmaj,ap);
    else
        printf("-1\n");

    return 0;
}