Cod sursa(job #1120660)

Utilizator catalincraciunCraciun Catalin catalincraciun Data 25 februarie 2014 09:15:42
Problema Elementul majoritar Scor 100
Compilator cpp Status done
Runda Teme Pregatire ACM Unibuc 2013 Marime 0.79 kb
/// Craciun Catalin
///  Elmaj
#include <fstream>
#include <iostream>

#define NMax 1000005

using namespace std;

ifstream f("elmaj.in");
ofstream g("elmaj.out");

long n;
long A[NMax];
long cand=-1, k=0;
long nr=0;

void elmaj()
{
    for (long i=1;i<=n;i++)
        if (k==0)
        {
            cand=A[i];
            k=1;
        }
        else if (cand==A[i])
            k++;
        else
            k--;

    if (cand>=0)
        for (long i=1;i<=n;i++)
            if (A[i]==cand)
                nr++;
}

void citire()
{
    f>>n;
    for (long i=1;i<=n;i++)
        f>>A[i];
    f.close();
}

int main()
{
    citire();
    elmaj();

    if (nr>n/2)
        g<<cand<<' '<<nr<<'\n';
    else
        g<<-1;

    g.close();

    return 0;
}