Cod sursa(job #1417345)

Utilizator rexlcdTenea Mihai rexlcd Data 10 aprilie 2015 09:21:54
Problema Elementul majoritar Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.63 kb
#include <iostream>
#include <cstdio>

using namespace std;

int n,i,v[1000002],x,k;

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