Cod sursa(job #3349825)

Utilizator RazvanGabreanuGabreanu Razvan-George RazvanGabreanu Data 2 aprilie 2026 17:19:03
Problema Elementul majoritar Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.87 kb
#include <fstream>
#include <vector>
#include <random>

using namespace std;

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

    int n;
    fin >> n;

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

    random_device rd;
    mt19937 generator(rd());
    uniform_int_distribution<int> distributie(0, n - 1);

    int incercariRamase = 20;

    while (incercariRamase > 0) {
        int index = distributie(generator);
        int candidat = numere[index];

        int aparitii = 0;
        for (int i = 0; i < n; ++i) {
            if (numere[i] == candidat) {
                aparitii++;
            }
        }

        if (aparitii > n / 2) {
            iesire << candidat << " " << aparitii << "\n";
            return 0;
        }

        incercariRamase--;
    }

    iesire << "-1\n";

    return 0;
}