Cod sursa(job #1377828)

Utilizator danyvsDan Castan danyvs Data 6 martie 2015 08:24:52
Problema Elementul majoritar Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.54 kb
#include <fstream>

using namespace std;

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

int a[1000001];

int main()
{
    int n,i,maj,nr;
    fin>>n;
    for (i=1; i<=n; i++) fin>>a[i];

    maj=a[1];
    nr=1;

    for (i=2; i<=n; i++)
        if (a[i]==maj) nr++;
        else if (nr==0) {maj=a[i]; nr=1;}
             else nr--;

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

    if (nr>n/2) fout<<maj<<" "<<nr;
    else fout<<"-1";

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