Cod sursa(job #3289008)

Utilizator raizoSoare Antonio raizo Data 25 martie 2025 10:37:06
Problema Elementul majoritar Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.91 kb
#include <fstream>
#include <vector>
#include <random>

using namespace std;

ifstream cin("elmaj.in");
ofstream cout("elmaj.out");

int main()
{
    
    int n,x;
    int result = -1;
    int counter = 0;
    vector<int> vec;
    cin >> n;
    for (int i = 0; i < n; i++) {
        cin >> x;
        vec.push_back(x);
    }

    std::random_device rd;
    std::mt19937 gen(rd());
    std::uniform_int_distribution<size_t> dist(0, vec.size() - 1);
    int random_index = 0;
    int random_element = -1;

    for (int i = 0; i < 20 ;i++) {
        random_index = dist(gen);
        random_element = vec[random_index];

        counter = 0;
        for (int x : vec) {
            if (x == random_element) { counter++; }
        }
        if (counter >= n / 2 + 1) {
            cout << random_element << " " << counter;
            exit(0);
        }

    }

    cout << "-1";
    
}