Cod sursa(job #3289001)

Utilizator raizoSoare Antonio raizo Data 25 martie 2025 10:27:14
Problema Elementul majoritar Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.06 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);
        if (result == x) { counter++; }
        else {
            counter--;
            if (counter < 0) {
                result = x;
            }
        }
    }
    counter = 0;
    for (int x : vec) {
        if (x == result) { counter++; }
    }
    if (counter < n / 2 + 1) {
        cout << -1;
    }
    else {
        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;

        while (random_element != result) {
            random_index = dist(gen);
            random_element = vec[random_index];
        }

        cout << random_element << counter;
    }
}