Cod sursa(job #1488034)

Utilizator zertixMaradin Octavian zertix Data 17 septembrie 2015 19:57:26
Problema Elementul majoritar Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.96 kb
#include <iostream>
#include <cstdio>


using namespace std;
int n,rez;
long long v[10000100],cand;
void read()
{
    scanf("%d",&n);
    for (int i=1;i<=n;++i)
        scanf("%d",&v[i]);
}

int rezolvare()
{
    read();
    cand=-1;
    int k=0;
    for (int i=1;i<=n;++i) ///verificare element majoritar (e clar ca va ramane de mai multe ori ca celelalte daca apare de cele mai multe ori)
    {
        if (k==0)
        {
            cand=v[i];
            k=1;
        }
        else if (v[i]==cand)
            ++k;
        else --k;
    }
    int nr=0;
    if (k>=0)
        {
            for (int i=1; i<=n; ++i)

                if ( v[i] == cand )
                    ++nr;

            return nr;
        }
    return -1;
}

int main()
{
    freopen("elmaj.in","r",stdin);
    freopen("elmaj.out","w",stdout);
    rez=rezolvare();
    if (rez>=0)
        printf("%lld %d",cand,rez);
    else printf("-1");
    return 0;
}