Cod sursa(job #2489772)

Utilizator ililogIlinca ililog Data 9 noiembrie 2019 11:43:11
Problema Elementul majoritar Scor 50
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.87 kb
using namespace std;
#include<iostream>
#include<fstream>
#include<algorithm>

int n;
long long a[100001];

int main() {

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

    fin >> n;

    for (int i = 1; i<=n; i++) {
        fin >> a[i];
    }

    long long cand = -1;
    int k = 0;
    for (int i = 1; i<=n; i++) {
        if (k == 0) {
            cand = a[i];
            k = 1;
        } else {
            if (a[i] == cand) {
                k++;
            } else {
                k--;
            }
        }
    }

    if (cand < 0) {
        fout << cand;
        return 0;
    }

    int nr = 0;

    for (int i = 1; i<=n; i++) {
        if (a[i] == cand) {
            nr++;
        }
    }

    if (nr > n/2) {
        fout << cand << " " << nr;
    } else {
        fout << "-1";
    }

    return 0;
}