Cod sursa(job #2648219)

Utilizator alexradu04Radu Alexandru alexradu04 Data 9 septembrie 2020 14:36:33
Problema Elementul majoritar Scor 80
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.77 kb
#include <iostream>

using namespace std;
int v[1000005];

int main() {
    freopen("elmaj.in","r",stdin);
    freopen("elmaj.out","w",stdout);
    int n;
    cin >> n;
    for (int i = 0; i < n; ++i) {
        cin >> v[i];
    }
    int candidate = v[0];
    int candidateFreq = 0;
    for (int i = 0; i < n; ++i) {
        if (v[i] == candidate)
            candidateFreq++;
        else {
            candidateFreq--;
            if (candidateFreq == 0) {
                candidate = v[i];
                candidateFreq = 1;
            }
        }
    }
    int freqVerif = 0;
    for (int i = 0; i < n; ++i) {
        if (v[i] == candidate)
            freqVerif++;
    }
    if (freqVerif >= n / 2 + 1)
        cout << candidate << " " << freqVerif;
    else
        cout<<-1;
}