Cod sursa(job #3349521)

Utilizator Latyn76Tinica Alexandru Stefan Latyn76 Data 31 martie 2026 08:35:35
Problema Elementul majoritar Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.94 kb
#include <iostream>
#include <fstream>
#include <vector>
#include <unordered_map>
#include <random>
#include <ctime>
using namespace std;

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

int n;
vector<int> el;
unordered_map<int, int> fr;

bool ismajoritar(int x)
{
    return fr[x] > n / 2;
}

int main()
{
    ios_base::sync_with_stdio(false);
    fin.tie(NULL);

    fin >> n;
    for (int i = 0; i < n; i++)
    {
        int x;
        fin >> x;
        el.push_back(x);
        fr[x]++;
    }
    mt19937 generator(time(0));
    uniform_int_distribution<int> distributie(0, n - 1);
    for (int i = 1; i <= 40; i++)
    {
        int index_aleator = distributie(generator);
        int x = el[index_aleator];
        if (ismajoritar(x))
        {
            fout << x << " " << fr[x];
            fout.close();
            return 0;
        }
    }
    fout << "-1\n";
    fout.close();
    return 0;
}