Cod sursa(job #2949842)

Utilizator guzgandemunteIonescu Laura guzgandemunte Data 1 decembrie 2022 21:15:52
Problema Elementul majoritar Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.78 kb
#include <iostream>
#include <fstream>

#define NMAX 1000000

using namespace std;

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

int v[NMAX];
int main()
{
    int n;
    fin >> n;

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

    int cand = v[0];
    int counter = 1;

    for (int i = 1; i < n; ++i) {
        if (cand == v[i]) {
            ++counter;
        } else {
            --counter;
            if (counter == 0) {
                cand = v[i];
                counter = 1;
            }
        }
    }

    counter = 0;
    for (int i = 0; i < n; ++i) {
        if (cand == v[i]) {
            ++counter;
        }
    }
    

    if (counter > n / 2) {
        fout << cand << " " << counter << '\n';
    } else {
        fout << -1;
    }
    return 0;
}