Cod sursa(job #2312277)

Utilizator Burbon13Burbon13 Burbon13 Data 4 ianuarie 2019 16:27:36
Problema Elementul majoritar Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.79 kb
#include <fstream>

std::ifstream f("elmaj.in");
std::ofstream o("elmaj.out");


int v[1000002];

int get_maj_el(const int& n)
{
    int nr_ap = 0, number = -1;

    for(int i = 0; i < n; i++)
    {
        if(number == v[i])
            nr_ap ++;
        else
        {
            nr_ap --;
            if(nr_ap < 0)
            {
                nr_ap = 1;
                number = v[i];
            }
        }
    }

    int total = 0;
    for(int i = 0; i < n; i++)
        if(v[i] == number)
            total ++;

    if(total > n/2)
    {
        o << number << " " << total << '\n';
    }
    else
    {
        o << "-1\n";
    }

    return total > n / 2 ? number : -1;
}

int main() {
    int n;
    f >> n;
    for(int i = 0; i < n; i++)
        f >> v[i];
    get_maj_el(n);
    return 0;
}