Cod sursa(job #3349823)

Utilizator victor_mnMinascurta Victor victor_mn Data 2 aprilie 2026 17:16:22
Problema Elementul majoritar Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.97 kb
#include <iostream>
#include <vector>
#include <utility>
#include <math.h>
#include <random>
#include <unordered_set>
#include <fstream>
using namespace std;

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

int main() {
    ios_base::sync_with_stdio(false);
    in.tie(nullptr);
    int n;
    in >> n;
    vector<int> v(n);
    for (int i = 0; i < n; i++) {
        in >> v[i];
    }

    unordered_set<int> vizitat;
    random_device rd;
    mt19937 gen(rd());
    uniform_int_distribution<> dist(0, n - 1);
    for (int i = 0; i < 30; i++) {
        int index = dist(gen);
        if (vizitat.contains(v[index]))
            continue;
        vizitat.insert(v[index]);
        int cnt = 0;
        for (int j = 0; j < n; j++) {
            if (v[j] == v[index])
                cnt++;
        }
        if (cnt >= n/2 + 1) {
            out << v[index] << " ";
            out << cnt << endl;
            break;
        }
    }
    out << -1;
}