Cod sursa(job #2225567)

Utilizator vladm98Munteanu Vlad vladm98 Data 27 iulie 2018 15:59:46
Problema Elementul majoritar Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.73 kb
#include<fstream>
using namespace std;

int v[1000001];

int aparitions (int pretendent, int n)
{
    int noOfAparition = 0;
    for (int i = 1; i<=n; ++i)
        noOfAparition += (v[i] == pretendent);
    return noOfAparition;
}

int main()
{
    ifstream fin("elmaj.in");
    ofstream fout("elmaj.out");
    int n;
    int noOfAparition = 0;
    int pretendent = 0;
    fin >> n;
    for (int i = 1; i <= n; ++i)
        fin >> v[i];
    for (int i = 1; i <= 10; ++i)
    {
        int poz = abs((rand() * rand()) % n) + 1;
        int noOfAparition = aparitions (v[poz], n);
        if (noOfAparition >= n / 2 + 1)
        {
            fout << v[poz] << ' ' << noOfAparition;
            return 0;
        }
    }
    fout << -1;
    return 0;
}