Cod sursa(job #2150193)

Utilizator preda.andreiPreda Andrei preda.andrei Data 3 martie 2018 12:40:16
Problema Elementul majoritar Scor 40
Compilator cpp Status done
Runda Arhiva educationala Marime 0.64 kb
#include <fstream>
#include <vector>

using namespace std;

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

    int n;
    fin >> n;

    vector<int> vec(n);
    int num = -1;
    int count = 0;

    for (int i = 0; i < n; ++i) {
        fin >> vec[i];
        count += (vec[i] == num ? 1 : -1);

        if (count <= 0) {
            num = vec[i];
        }
    }

    count = 0;
    for (const auto &elem : vec) {
        count += (elem == num ? 1 : 0);
    }

    if (count < n / 2 + 1) {
        fout << "-1\n";
    } else {
        fout << num << " " << count << "\n";
    }
    return 0;
}