Cod sursa(job #2310464)

Utilizator al3xionescuIonescu Alexandru al3xionescu Data 31 decembrie 2018 17:42:21
Problema Elementul majoritar Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.77 kb
#include <fstream>
#define NMAX 1e6
std::ifstream fin("elmaj.in");
std::ofstream fout("elmaj.out");
int n, maj = -1, count = 0;
int numbers[NMAX];
int main() {
    fin >> n;
    for (int i = 0; i < n; i++) {
        fin >> numbers[i];
        if (count == 0) {
            count = 1;
            maj = numbers[i];
        }
        else if (numbers[i] == maj) {
            ++count;
        }
        else {
            --count;
        }
    }
    if (count == 0) {
        cout << -1;
        return 0;
    }
    count = 0;
    for (int i = 0; i < n; i++) {
        if (numbers[i] == maj) {
            ++count;
        }
    }
    if (count >= n / 2 + 1) {
        fout << maj << " " << count;
    }
    else {
        fout << -1;
    }
    return 0;
}