Cod sursa(job #2819920)

Utilizator gripzStroescu Matei Alexandru gripz Data 19 decembrie 2021 13:50:55
Problema Elementul majoritar Scor 80
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.71 kb
#include <iostream>
#include <unordered_map>

#define MAXN 1000003

using namespace std;

unordered_map<int, int> m;
int N, v[MAXN];

int main()
{
    freopen("elmaj.in", "r", stdin);
    freopen("elmaj.out", "w", stdout);
    cin >> N;
    int m = 0, cnt = 0;
    for(int i = 1; i <= N; i++) {
        cin >> v[i];
        if(cnt == 0) {
            m = v[i];
            cnt = 1;
        } else if (m == v[i]) {
            cnt++;
        } else {
            cnt--;
        }
    }

    cnt = 0;

    for(int i = 1; i <= N; i++) {
        if(v[i] == m) {
            cnt++;
        }
    }

    if(cnt >= N / 2 + 1)
        cout << m << " " << cnt;
    else
        cout << -1;
}