Cod sursa(job #2070267)

Utilizator vladm98Munteanu Vlad vladm98 Data 19 noiembrie 2017 13:17:18
Problema Elementul majoritar Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.7 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 <= 5; ++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;
}