Cod sursa(job #2312174)

Utilizator norryna07Alexandru Norina norryna07 Data 4 ianuarie 2019 13:49:21
Problema Elementul majoritar Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.67 kb
#include <bits/stdc++.h>
#define N 1000010
using namespace std;

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

int a[N],n;

int main ()
{
    int i, cand, vot;
    fin>>n;
    for (i=1;i<=n;++i) fin>>a[i];
    fin.close();

    /// cautam posibilul candidat care ar putea castiga
    cand=a[1]; vot=1;
    for (i=2;i<=n;++i)
        if (a[i]==cand) vot++;
        else if (vot==0) cand=a[i],vot=1;
             else vot--;

    /// verificam daca are voturile necesare
    vot=0;
    for (i=1;i<=n;++i)
        if (cand==a[i]) vot++;
    if (vot>n/2) fout<<cand<<' '<<vot;
    else fout<<-1;
    fout<<'\n';
    fout.close();
    return 0;
}