Cod sursa(job #1090312)

Utilizator crisbodnarCristian Bodnar crisbodnar Data 22 ianuarie 2014 16:26:52
Problema Elementul majoritar Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.72 kb
#include <iostream>
#include <fstream>

using namespace std;

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

const int Nmax = 1e6 + 100;

int N, elmaj, nr, V[Nmax];

void Solve()
{
     elmaj = -1;
    for(int i = 1; i <= N; i++)
    {
        fin >> V[i];
        if(!nr) elmaj = V[i], nr = 1; else
        if(elmaj == V[i]) nr++; else
        nr--;
    }

    if(elmaj < 0)
    {
        fout << "-1";
        return;
    }

    nr = 0;
    for(int i = 1; i <= N; i++)
        if(elmaj == V[i]) nr++;
    if(nr > N / 2)
        fout << elmaj <<' '<< nr;
    else
        fout << "-1";
}

int main()
{
    fin >> N;
    Solve();

    fin.close();
    fout.close();
    return 0;
}