Cod sursa(job #1852451)

Utilizator DianaIfrosaIfrosa Diana DianaIfrosa Data 20 ianuarie 2017 20:11:34
Problema Elementul majoritar Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.54 kb
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("elmaj.in");
ofstream fout("elmaj.out");
int a[1000002];
int main()
{
    int n,i,maj,vot,ct;
    fin>>n;
    for(i=1;i<=n;i++)
        fin>>a[i];
    fin.close();
    maj=a[1]; vot=1;
    for(i=2;i<=n;i++)
        if(a[i]==maj) vot++;
       else if (vot>0) vot--;
        else {maj=a[i]; vot=1;}
    ct=0;
    for(i=1;i<=n;i++)
            if(a[i]==maj) ct++;
    if(ct>=n/2+1) fout<<maj<<"\n";
    else fout<<-1;
    fout.close();
    return 0;
}