Cod sursa(job #1649449)

Utilizator eu3neuomManghiuc Teodor-Florin eu3neuom Data 11 martie 2016 13:41:28
Problema Elementul majoritar Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.68 kb
#include <bits/stdc++.h>

using namespace std;

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

const int NMax = 1e6 + 5;

int v[NMax];

int main(){
    int n, best, ap;
    fin >> n;
    best = -5; ap = 1;
    for(int i = 1; i <= n; i++){
        fin >> v[i];
        if(v[i] == best){
            ap++;
        } else {
            ap--;
            if(ap == 0){
                ap = 1;
                best = v[i];
            }
        }
    }
    ap = 0;
    for(int i = 1; i <= n; i++){
        if(v[i] == best) ap++;
    }
    if(ap >= (n / 2) + 1){
        fout << best << " " << ap;
    } else {
        fout << -1;
    }
    return 0;
}