Cod sursa(job #1367725)

Utilizator Eugen01Vasilescu Eugen Eugen01 Data 2 martie 2015 02:03:42
Problema Elementul majoritar Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.58 kb
#include<fstream>

#define Nmax 1000009

using namespace std;

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

int main()
{
    int n, candidate, nr, i, a[Nmax];

    in >> n;
    candidate = -1;
    nr = 1;

    for (int i = 1; i <= n; i++)
    {
        in >> a[i];

        if (a[i] == candidate)
            nr++;
        else if (nr != 1)
            nr--;
        else
            candidate = a[i];
    }

    nr = 0;
    for (int i = 1; i <= n; i++)
        if (a[i] == candidate) nr++;

    if (nr >= n / 2 +1) out << candidate << " " << nr << "\n";
    else out << "-1\n";
}