Cod sursa(job #2312541)

Utilizator laura.chiriacLaura Chiriac laura.chiriac Data 4 ianuarie 2019 23:37:21
Problema Elementul majoritar Scor 60
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.64 kb
#include <bits/stdc++.h>
#define N 100010
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];
    /// etapa 1 valoarea care are sanse sa fie element majoritar
    cand=a[1]; vot=1;
    for(i=2; i<=n; ++i)
        if(a[i]==cand) vot++;
        else if(vot!=0) vot--;
            else { cand=a[i]; vot=1; }
    ///etapa 2 verficam daca chiar este element majoritar
    vot=0;
    for(i=1; i<=n; ++i)
        if(a[i]==cand) vot++;
    if(vot>n/2) fout<<cand<<" "<<vot<<"\n";
    else fout<<-1<<"\n";
    return 0;
}