Cod sursa(job #2786662)

Utilizator qubitrubbitQubit Rubbit qubitrubbit Data 21 octombrie 2021 13:52:32
Problema Elementul majoritar Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.7 kb
#include <fstream>
#include <map>
using namespace std;

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

bool mapCointains(map<int, int> m, int a)
{
    return m.find(a) != m.end();
}

int getMostFrequent(int a[], int n)
{
    map<int, int> freq;
    for (int i = 0; i < n; ++i)
    {
        if (!mapCointains(freq, a[i]))
        {
            freq[a[i]] = 0;
        }
        ++freq[a[i]];
        if (freq[a[i]] >= (n / 2) + 1)
        {
            return a[i];
        }
    }
    return -1;
}

int n;
int main()
{
    fin >> n;
    int a[n];
    for (int i = 0; i < n; ++i)
    {
        fin >> a[i];
    }
    fout << getMostFrequent(a, n);
    return 0;
}