Cod sursa(job #2646709)

Utilizator DormeoNoapte Buna Dormeo Data 1 septembrie 2020 18:36:04
Problema Elementul majoritar Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.64 kb
#include <bits/stdc++.h>

using namespace std;

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

const int DIM = 1000000 + 5;

int a[DIM];

int main()
{
    int n;

    fin >> n;
    for(int i = 1; i <= n; ++i) {
        fin >> a[i];
    }
    int boss = a[1], frq = 0;
    for(int i = 1; i <= n; ++i) {
        if(a[i] == boss) ++frq;
        else --frq;
        if(frq == 0) boss = a[i], frq = 1;
    }
    frq = 0;
    for(int i = 1; i <= n; ++i) {
        if(a[i] == boss) {
            ++frq;
        }
    }
    if(frq >= n / 2 + 1) fout << boss << " " << frq;
    else fout << "-1" << "\n";
    return 0;
}