Cod sursa(job #2934308)

Utilizator VladNANegoita Vlad-Andrei VladNA Data 5 noiembrie 2022 20:15:21
Problema Elementul majoritar Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.68 kb
#include <bits/stdc++.h>
#define NMAX 1000001

using namespace std;

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

int v[NMAX];

int main(){

    int n;
    in >> n;

    stack <int> s;
    for (int i = 1; i <= n; ++i) {
        in >> v[i];
        if (!s.empty() && s.top() != v[i])
            s.pop();
        else
            s.push(v[i]);
    }

    if (s.empty()) {
        out << "-1\n";
    } else {
        int nr = s.top(), cnt = 0;

        for (int i = 1; i <= n; ++i)
            cnt += (v[i] == nr);

        if (cnt >= n / 2 + 1)
            out << nr << ' ' << cnt << '\n';
        else
            out << "-1\n";
    }
    return 0;
}