Cod sursa(job #2638618)

Utilizator A.D.ADelureanu Ana-Maria A.D.A Data 29 iulie 2020 10:17:57
Problema Elementul majoritar Scor 50
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.61 kb
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("elmaj.in");
ofstream fout("elmaj.out");
int n, sanse, maj, nr;
long long  v[1000001];

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

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

    //validare majoritar
    for (int i=1; i<=n && nr<n/2+1; i++)
        if (v[i]==maj) nr++;

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

    return 0;
}