Cod sursa(job #3349818)

Utilizator grigoreBiancaGrigore Bianca grigoreBianca Data 2 aprilie 2026 17:03:56
Problema Elementul majoritar Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.8 kb
#include<iostream>
#include<fstream>
#include<vector>
#include<ctime>
#include <cstdlib>
using namespace std;

int N;
ifstream fisier("elmaj.in");
ofstream fisierout("elmaj.out");

void algMonteCarlo(int N, vector<int>& v) {

  srand(time(0));
  int nr_aparitii = N/2+1;

  for (int i = 0; i < 20; i++) {
    int random = rand() % N;
    int numar_ales = v[random];

    int aparitii = 0;
    for (int j = 0; j< N; j++) {
      if (v[j] == numar_ales) {
        aparitii++;
      }
    }

    if (nr_aparitii <= aparitii) {
      fisierout<< numar_ales << " " << aparitii;
      return;
    }
  }

  fisierout<<-1;
}

int main(){

  if (!(fisier>>N))
    return 0;
  vector<int> v(N);
  for ( int i = 0; i < N; i++)
    fisier>>v[i];

  algMonteCarlo(N, v);

  return 0;
}