Cod sursa(job #2875254)

Utilizator vlad_maneaManea Vlad Cristian vlad_manea Data 21 martie 2022 12:46:02
Problema Elementul majoritar Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.7 kb
#include <iostream>
#include <fstream>

using namespace std;

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

int n, a[1000000];

void citire() {
    fin>>n;
    for (int i=0; i<n; i++)
        fin>>a[i];
}

void majoritate() {
    int cand=-1, nr=0;
    for (int i=0; i<n; i++)
        if (nr==0) {
            cand=a[i];
            nr=1;
        } else if (a[i]==cand)
            nr++;
        else
            nr--;
    if (cand==-1) {
        fout<<cand;
        return;
    }
    int nrv=0;
    for (int i=0; i<n; i++)
        if (a[i]==cand)
            nrv++;
    if (nrv>=n/2+1)
        fout<<cand<<" "<<nrv;
    else
        fout<<"-1";
}

int main() {
    citire();
    majoritate();
    return 0;
}