Cod sursa(job #3349762)

Utilizator victoralecseAlecse Victor-Alin victoralecse Data 2 aprilie 2026 14:08:32
Problema Elementul majoritar Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.86 kb
#include <iostream>
#include <vector>
#include <fstream>
#include <random>

using namespace std;

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

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

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

    // Generator de numere aleatoare modern (Mersenne Twister)
    mt19937 rng(1337); // Poti folosi random_device{}() pentru seed variabil
    uniform_int_distribution<int> dist(0, n - 1);

    while (true) {
        // Alegem un index aleatoriu
        int candidate = v[dist(rng)];

        int count = 0;
        for (int i = 0; i < n; ++i) {
            if (v[i] == candidate) {
                count++;
            }
        }

        // Verificăm condiția de majoritate
        if (count > n / 2) {
            cout << candidate << " " << count << endl;
            break;
        }
    }

    return 0;
}