Cod sursa(job #1167546)

Utilizator Impaler_009Mihai Nitu Impaler_009 Data 5 aprilie 2014 14:37:42
Problema Elementul majoritar Scor 30
Compilator cpp Status done
Runda Arhiva educationala Marime 0.6 kb
#include <fstream>

using namespace std;

ifstream fin ("elmaj.in");
ofstream fout ("elmaj.out");

int v[1000001],n;

int main()
{
    fin>>n;

    for (int i=1; i<=n; ++i)
        fin>>v[i];

    int val = 0, cnt = 0;

    for (int i=1; i<=n; ++i)
    {
        if (v[i] == val)
            ++cnt;
        {
            --cnt;
            if (cnt < 0)
                val = v[i];
        }
    }

    cnt = 0;

    for (int i=1; i<=n; ++i)
    {
        if (v[i] == val)
            ++cnt;
    }

    if (cnt >= n/2+1)
        fout<<val<<" "<<cnt;
    else fout<<-1;
}