Cod sursa(job #2227711)

Utilizator mihaimusat.1998Musat Mihai-Robert mihaimusat.1998 Data 1 august 2018 16:22:29
Problema Elementul majoritar Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.67 kb
#include <fstream>

const int nmax=2000001;

using namespace std;

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

    int n,i,nr,maj,v[nmax];

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

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

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

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

    fin.close();
    fout.close();

    return 0;
}