Cod sursa(job #3349842)

Utilizator NedelkaFrancisNedelka Francis Alexandru NedelkaFrancis Data 2 aprilie 2026 18:07:33
Problema Elementul majoritar Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.87 kb
#include <iostream>
#include <fstream>
#include <vector>
#include <random>

using namespace std;

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

    int n;
    if (!(fin >> n))
        return 0;

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

    mt19937 gen(42);
    uniform_int_distribution<> dis(0, n - 1);

    for (int i = 0; i < 30; i++)
    {
        int candidat = v[dis(gen)];
        int aparitii = 0;

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

        if (aparitii >= n / 2 + 1)
        {
            fout << candidat << " " << aparitii << "\n";
            fin.close();
            fout.close();
            return 0;
        }
    }

    fout << "-1\n";

    fin.close();
    fout.close();
    return 0;
}