Cod sursa(job #1585707)

Utilizator Emy1337Micu Emerson Emy1337 Data 31 ianuarie 2016 13:13:53
Problema Elementul majoritar Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.72 kb
#include <iostream>

using namespace std;

// 1 2 3 3 2 2 2
//2 2 2 2 2 2 2 1 1 1 34 1 2 3

const int MAXN = 100100;


int n;
int v[MAXN];



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

    int cand = -1, ap = 0;

    for (int i = 1; i <= n; ++i) {
        if (v[i] != cand) {
            ap--;
            if (ap < 0) {
                cand = v[i];
                ap = 0;
            }
        }
        else {
            ap++;
        }
    }

    ap = 0;
    for (int i = 1; i <= n; ++i)
        if (v[i] == cand)
            ++ap;

    if (ap > n / 2)
        fout << cand << " " << ap << "\n";
    else
        fout << -1;

    return 0;

}