Cod sursa(job #2260206)

Utilizator RaresLiscanLiscan Rares RaresLiscan Data 14 octombrie 2018 16:15:21
Problema Elementul majoritar Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.68 kb
#include <bits/stdc++.h>

using namespace std;

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

vector <int> v;
stack <int> s;

int main()
{
    int n;
    fin >> n;
    for (int i = 1; i <= n; i ++) {
        int k;
        fin >> k;
        v.push_back(k);
        if (s.empty()) s.push(k);
        else {
            if (k == s.top()) s.push(k);
            else s.pop();
        }
    }
    if (!s.empty()) {
        int k = s.top(), nr = 0;
        for (int i = 0; i < n; i ++) {
            if (v[i] == k) nr ++;
        }
        if (nr >= n / 2 + 1) fout << k << " " << nr;
        else fout << -1;
    }
    else fout << -1;
    return 0;
}